JSP應用——動作元素、注釋

來源:互聯網
上載者:User

 

JSP元素

(1)       指令元素

發生時間:在編譯時間被編譯執行

(2)       指令碼元素

(3)       動作元素

發生時間:每次有用戶端請求時都會被執行一次

•          動作是特殊的標記,通過一個動作標記可以實現多行Java代碼實現的效果。可以動態插入檔案、重用JavaBean組件、導向另一個頁面等。

•          動作元素和指令元素不同,動作元素是在用戶端請求時動態執行的,每次有用戶端請求時可能都會被執行一次,而指令元素是在編譯時間被編譯執行,它只會被編譯一次

動作元素分類:

1、<jsp:useBean>————jsp是首碼,useBean是名字

                                          功能:建立或者返回一個實體Bean組件的實體物件

JavaBean需要的兩個條件:

(1)       類是公有的,有一個預設的無參構造方法

(2)       在類中可以定義若干個私人屬性,但是需要通過公有的getter/setter方法對這些屬性進行賦值和取值,並且getter/setter方法不能重載

注意:

•          在編寫上,JavaBean的類必須使用package語句;

•          public、無參構造方法;

•          getter/setter方法必須是public的,分別以set及get開頭,方法命名上遵循Java的命名規範。

•          當屬性類型為boolean類型的時候,getter方法的get可以用is代替。

JavaBean包含的一些其它方法:

       (1)<jsp:useBean>

–        useBean動作用於建立引用,並將現有的Bean組件嵌入JSP 。

–        useBean的文法:

<jsp:useBean id="BeanName" class="BeanClass"   scope="page|request|session|application"/>

例子:

  <!-- 作用:

  Book book=(Book)session.getAttribute("book");

    if(book!=null){

        Book book=new Book();

       Session.setAttribute(“book”,book);

    }

    return book;

  通過getAttribute方法擷取book對象,如果book是空的則建立該對象,並且將該對象

  設定到session的  範圍範圍之內,如果不為空白,從session中擷取了引用,所有return -->

 <jsp:useBean id="book" class=cn.csdn.beans.Book" scope="session"></jsp:useBean>

    (2)<jsp:setProperty>

–         setProperty動作用於設定useBean中指定的Bean的屬性的值。setProperty動作指定JavaBean的名稱、屬性名稱、屬性值和參數,用於賦給Bean的屬性。

–         setProperty的文法:

<jsp:setProperty name="BeanAlias"   
       property="PropertyName"     value="Value"

                param="Parameter“

<jsp:setProperty property="bean對象的屬性名稱" name="bean對象的名字" value="bean對象的值"/>

執行個體:

<jsp:setProperty name=“book” property=“name” value=“Java SE程式設計精講”/>
等價於<%book.setName(“Java SE程式設計精講”);%>

(3)<jsp:getProperty>

–         getProperty動作用於擷取Bean中指定的屬性中的值。系統先將收到的值轉換為字串,然後再將其作為輸出結果發送。

–         getProperty的文法:

<jsp:getProperty name="BeanAlias" property="PropertyName"/>

<jsp:getProperty property="bean對象的屬性名稱" name="bean對象的名字"/>

Out.println(bean對象.getxxx());//具有輸出的功能

例如,<jsp:getProperty name=“book” property=“name” />

等價於:<%= book.getName() %>

使用JavaBean的好處

–        JavaBean技術更有利於Web開發的代碼複用。因為寫在JSP頁面中的Java程式碼片段重用性要差一些,而JavaBean是一個Java類,更方便在其他Web應用中複用。

–        JavaBean技術還有利於開發項目的角色分工,讓頁面設計人員和程式編寫人員更容易地修改JSP頁面中自己所管轄的內容,而不必互相干擾。

2、<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"/>

【使用include動作的JSP頁面,通過request.getParameter(“name”)獲得被包含檔案傳遞的參數值。】

<jsp:include>

include指令和<jsp:include>動作的區別

–        include指令讀入指定頁面的內容並把這些內容和原來的頁面融合到一起。這個過程發生在JSP轉化成Servlet的階段,最終所合成的JSP檔案被Servlet容器轉化成Servlet。如果一個JSP頁面使用include指令包含了另一個JSP頁面,最終也只產生一個Servlet的Java源檔案和一個class檔案。相當於兵合一處,將打一方。

–        使用<jsp:include>動作包含其他JSP頁面,本質是調用了被包含檔案所轉化的Servlet對象的jspService()方法。即所被包含的JSP檔案也對應有產生的Servlet源檔案和class檔案。如果一個JSP頁面使用include動作包含了另一個JSP頁面,會產生兩個Servlet源檔案和兩個class檔案。

這兩種包含都可以包含jsp頁面和html頁面

動作元素包含:

<jsp:include page=”被包含的檔案的URL地址”>包含動作會執行多次,每一個用戶端提交請求的時候,會有兩個servlet產生

指令元素包含:

<%@include file=” 被包含的檔案的URL地址”>  發生在轉換階段,只做一次,只會有一個servlet產生

3、<jsp:forward>

–        forward動作用來把當前的JSP頁面重新導向到另一個頁面(同一個Web應用中的HTML檔案、JSP頁面、Servlet)。

–        地址還是當前頁面的地址。內容則是另一個頁的內容。

–        不帶參數的forward動作:<jsp:forward page="url"/>

–        帶參數的include動作:

<jsp:forward page="url">

                            <jsp:param name="ParamName" value="ParamValue"/>

</jsp:forward>

使用<jsp:forward>動作轉向,和Servlet中的重新導向代碼完全等同。

4、<jsp:param>

–        param提供其他JSP動作的名稱/值資訊。

–        param文法:

<jsp:param name="ParamName" value="ParamValue"/>

5、<jsp:plugin>

–        用於串連用戶端的Applet和Bean外掛程式。在處理這個動作的時候,根據用戶端瀏覽器的不同,JSP在執行以後將分別輸出為OBJECT或EMBED這兩個不同的HTML元素。

JSP有三種注釋方式

1、  HTML注釋(輸出注釋):指在用戶端查看原始碼時能看見注釋。例如,

<!-- this is an html comment.it will show up int the response. -->

2、  JSP頁注釋(隱藏注釋):指注釋雖然寫在JSP程式中,但不會發送給客戶,因此在用戶端查看原始碼時不能看見注釋。這樣的注釋在JSP編譯時間被忽略掉。

<%--this is a JSP comment.it will only be seen in jsp code--%>

3、 Java注釋:只能出現在Java代碼區中,不允許直接出現在頁面中。//單行注釋   /*多行注釋*/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.