jsp指令碼元素

來源:互聯網
上載者:User

jsp中三種指令碼元素:

 

 

運算式格式<%=  expression  %>java運算式,計算運算式並輸出其結果。

 

計算Java運算式得到的結果被轉換成字串,然後插入到頁面。計算在運行時進行(頁面被請求時),因此可以訪問和請求有關的全部資訊。例如,下面的代碼顯示頁面被請求的日期/時間:

Current time: <%= new java.util.Date() %>

為簡化這些運算式,JSP預定義了一組可以直接使用的物件變數。對於JSP運算式來說,最重要的幾個對象及其類型如下:
request:HttpServletRequest;
response:HttpServletResponse;
session:和request關聯的HttpSession
out:PrintWriter(帶緩衝的版本,JspWriter),用來把輸出發送到用戶端 

下面是一個例子:
Your hostname: <%= request.getRemoteHost() %>

 

Scriptlet格式<%  code  %>把代碼插入到Servlet的_jspService方法。對應Servlet類中_jspService(HttpServletRequest, HttpServletResponse)方法中的程式碼片段。

 

 

 

和JSP運算式一樣,Scriptlet也可以訪問所有預定義的變數。例如,如果你要向結果頁面輸出內容,可以使用out變數:
<% 
String queryData = request.getQueryString();
out.println("Attached GET data: " + queryData);
%>

注意Scriptlet中的代碼將被照搬到Servlet內,而Scriptlet前面和後面的靜態HTML(模板文本)將被轉換成println語句。這就意味著,Scriptlet內的Java語句並非一定要是完整的,沒有關閉的塊將影響Scriptlet外的靜態HTML。例如,下面的JSP片斷混合了模板文本和Scriptlet:
<%

if (Math.random() < 0.5) {

%>
Have a <B>nice</B> day!
<%

 } else {

%>
Have a <B>lousy</B> day!
<%

 }

%>
上述JSP代碼將被轉換成如下Servlet代碼:
if (Math.random() < 0.5) {<br /> out.println("Have a <B>nice</B> day!");<br />} else {<br /> out.println("Have a <B>lousy</B> day!");<br />}<br />

聲明格式<%!  code  %>把聲明加入到Servlet類(在任何方法之外)。

由於聲明不會有任何輸出,因此它們往往和JSP運算式或Scriptlet結合在一起使用。例如,下面的JSP代碼片斷輸出自從伺服器啟動(或Servlet類被改動並重新裝載以來)當前頁面被請求的次數:
<%! private int accessCount = 0; %>
自從伺服器啟動以來頁面訪問次數為:
<%= ++accessCount %>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.