一、JSP動作
動作是特殊的標記,通過一個動作標記可以實現多行Java代碼實現的效果。可以動態插入檔案、重用JavaBean組件、導向另一個頁面等。
動作元素和指令元素不同,動作元素是在用戶端請求時動態執行的,每次有用戶端請求時可能都會被執行一次,而指令元素是在編譯時間被編譯執行,它只會被編譯一次。
<jsp:useBean>
useBean動作用於建立引用,並將現有的Bean組件嵌入JSP。
jsp:useBean>
– useBean動作用於建立引用,並將現有的Bean組件嵌入JSP 。
– useBean的文法:
<jsp:useBean id="BeanName" class="BeanClass" scope="page|request|session|application"/>
例如,<jsp:useBean id=“book” class=“com.web.beans.Book” scope=“page” />
在執行時,Web容器會檢查這個JavaBean的對象是否已經存在,如果存在就使用存在的JavaBean對象,反之產生一個新的JavaBean對象。相對於:
<% com.web.beans.Book book=null;
if(pageContext.getAttribute(“book”)==null){
book=new com.web.beans.Book();
pageContext.setAttribute(“book”,book);
}else{
book=(Book)pageContext.getAttribute(“book”);
}
%>
I jsp實現 <jsp:useBean id="book" class="com.csdn.beans.Book" scope="session"/>
II java代碼 Book book=session.getAttribute(“book”);
If(book==null){
Book book=new Book();
Session.setAttribute(“book”,book);
}
Return book;
上面的I II這兩個功能一樣
<jsp:setProperty>
setProperty動作用於設定useBean中指定的Bean的屬性的值。setProperty動作指定JavaBean的名稱、屬性名稱、屬性值和參數,用於賦給Bean的屬性。
setProperty的文法:
<jsp:setProperty name="BeanAlias"
property="PropertyName" value="Value"
param="Parameter“
/>
Out.println(bean對象.getxxxx()); 具有輸出的功能
<jsp:setProperty name=“book” property=“name” value=“Java SE程式設計精講”/>
等價於<%book.setName(“Java SE程式設計精講”);%>
(2)<jsp:setProperty name=“book” property=“name” param=“bookName”> 用request對象中的參數bookName的值給JavaBean中的name屬性賦值。等價於
<%book.setName(request.getParameter(“bookName”))%>
(3)<jsp:setProperty name=“book” property=“name”>
request對象中的參數名稱和JavaBean中屬性名稱一樣。等價於<%book.setName(request.getParameter(“name”))%>
星號(*)字元可用於指定Bean的所有屬性。
<jsp:setProperty name=“book” property=“*” />
<jsp:include>
include動作用於將其他HTML頁面或JSP頁面中的內容合并到當前頁面,或將其中的檔案插入到當前頁面。
不帶參數的include動作:
<jsp:include page="weburl" flush="true"/>
帶參數的include動作:
<jsp:include page="weburl" flush="true">
<jsp:param name="ParamName" value="ParamValue"/>
<jsp:include>
二、JSP有三種注釋方式
HTML注釋(輸出注釋):指在用戶端查看原始碼時能看見注釋。例如,
<!-- this is an html comment.it will show up int the response. -->
JSP頁注釋(隱藏注釋):指注釋雖然寫在JSP程式中,但不會發送給客戶,因此在用戶端查看原始碼時不能看見注釋。這樣的注釋在JSP編譯時間被忽略掉。
<%--this is a JSP comment.it will only be seen in jsp code--%>
Java注釋:只能出現在Java代碼區中,不允許直接出現在頁面中。//單行注釋 /*多行注釋*/