02JSP腳本標識

①概要

在JSP頁面中,腳本標識使用得最爲頻繁。因爲它們能夠很方便、靈活地生成頁面中的動態內容,特別是Scriptlet腳本程序。

JSP中的腳本標識包括以下三種元素:聲明識(Declaration)、JSP表達式(Expression)和腳本程序(Scriptlet)。

    通過這些元素,就可以在JSP頁面中像編寫Java程序一樣來聲明變量、定義函數或進行各種表達式的運算。在JSP頁面中需要通過特殊的約定來表示這些元素,並且對於客戶端這些元素是不可見的,它們由服務器執行。
>表達式      <%=  %>
>聲明標識  <%! %>

>腳本程序  <%    %>


②JSP表達式

表達式用於向頁面中輸出信息,其使用格式爲:
    <%= 變量或可以返回值的方法或Java表達式 %>
特別要注意,“<%”與“=”之間不要有空格。
JSP表達式在頁面被轉換爲Servlet後,轉換爲了out.print()方法。所以JSP表達式與JSP頁面中嵌入到小腳本程序中的out.print()方法實現的功能相同。如果通過JSP表達式輸出一個對象,則該對象的toString()方法會被自動調用,表達式將輸出toString()方法返回的內容。
JSP表達式可以應用到以下幾種情況。
        (1)向頁面輸出內容,例如下面的代碼:
                        <% String name="www.xxx.com"; %>
                        用戶名:<%=name%>
        (2)生成動態的鏈接地址,例如下面的代碼:
                        <% String path="welcome.jsp"; %>
                        <a href="<%=path%>">鏈接到welcom.jsp</a>
        (3)動態指定Form表單處理頁面,例如下面的代碼:
                        <% String name="logon.jsp"; %>
                        <form action="<%=name%>"></form>
        (4)爲通過循環語句生成的元素命名,例如下面的代碼:
                        <% for(int i=1;i<3;i++){ %> 
                               file<%=i%>:<input type="text" name="<%="file"+i%>"><br>
                        <% } %>

③聲明表達式

在JSP頁面中可以聲明變量或方法,其聲明格式爲:
<%! 聲明變量或方法的代碼 %>

在頁面中通過聲明標識聲明的變量和方法,在整個頁面內都有效,它們將成爲JSP頁面被轉換爲Java類後類中的屬性和方法。並且它們會被多個線程即多個用戶共享。也就是說,其中的任何一個線程對聲明的變量或方法的修改都會改變它們原來的狀態。它們的生命週期從創建到服務器關閉後結束。下面將通過一個具體實例來介紹聲明標識的應用。

<%@ page contentType="text/html;charset=UTF-8" %>
<%!
    int num=0;                       //聲明一個計數變量
    synchronized void add(){     //該方法實現訪問次數的累加操作
       num++;
    }
%>
<% add(); %>                       <%-- 該腳本程序調用實現訪問次數累加的方法 --%>
<html>
       <body>

            <center>您是第<%=num%>位訪問該頁的遊客!</center>

       </body>
</html>

④腳本程序

腳本程序是在JSP頁面中使用“<%”與“%>”標記起來的一段Java代碼。在腳本程序中可以定義變量、調用方法和進行各種表達式運算,且每行語句後面要加入分號。在腳本程序中定義的變量在當前的整個頁面內都有效,但不會被其他的線程共享,當前用戶對該變量的操作不會影響到其他的用戶。當變量所在的頁面關閉後就會被銷燬。
腳本程序使用格式如下:
<% Java程序片段 %>


<%@ page contentType="text/html;charset=gb2312"%>
<% int able=1; %>
<html>
   <body>
      <table>
            <% if(able==1){ %>
                   <tr><td>歡迎登錄!您的身份爲“普通管理員”。</td></tr>
               <% }
                   else if(able==2){
               %>
               <tr><td>歡迎登錄!您的身份爲“系統管理員”。</td></tr>
          <% } %>
      </table>
    </body>
</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章