jsp中的java代碼&JSP page指令(11、12章筆記)

來源:互聯網
上載者:User

pre:下面所有的jsp標準文法都有對應的xml相容標籤表示方式。

jsp中的java代碼,jsp和servlet的對應關係

1、<%= Java Expression %>

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

xml expression:<jsp:expression>Java Expression</jsp:expression>

                    jsp1.2及之後的版本中,只要程式設計者沒有在同一頁面中混合使用XML方式和標準的jsp方式(<%= ... %>),就要求伺服器支援這種文法。

2、<% Java Code %>

eg:<% 

String queryData ="";

if(){}else{}

%>

xml expression : <jsp:scriptlet>Java Code</jsp:scriptlet>

3、<%! Filed or Method Definition %>

xml expression:<jsp:declaration> Filed or Method</jsp:decalration>

4、jsp/servlet對應關係

上面的1、2都會被加進編譯產生的servlet類中的_jspService方法,而這個方法總會北service方法調用。

而3會獨立出來編程servlet的屬性或方法。

Tomcat下jsp編譯後的servlet可在tomdir/work/localhost目錄中查看。

jsp page指令:控制所產生的servlet的結構

<%@ page import="java.util.*,java.logging.*" %>  匯入jsp變為servlet時應該匯入的包。

<%@ page contentType="MIME-Type; cahrset = Character-Set" %>  和 <% response.setContentType("application/vnd.ms-execel"); %>作用相同。

jsp頁面預設的MIME類型是text/html(預設字元集是ISO-8859-1)

如果只想更改字元集,可以使用<%@ page pageEncoding="Shift_JIS" %>

<%@ page session="true" %><%-- Default --%>

屬性控制頁面是否參與HTTP會話。

還有其他屬性:

isELlgnored屬性:忽略(true)JSP 2.0 運算式語言(EL),還是進行正常的求值。

 buffer屬性指定out變數(類型為JspWriter)使用的緩衝區大小。伺服器實際使用的緩衝區>=給定的值

<%@ page buffer="32kb" %>   表示緩衝到32KB,頁面完成或明確對輸出執行清空(如使用response.flushBuffer),否則不降文檔發送給客戶。如果緩衝區禁用,要求設定包頭或狀態碼的jsp元素出現在檔案的頂部,如果每一句輸出的回應時間過長,禁用緩衝區會使客戶更快看到部分結果。buffer="none"表示禁用。

autoFlush屬性:控制當緩衝區充滿後,是應該自動清空輸出(預設true),還是溢出之後拋出一個異常。、

info屬性,在servlet中通過getServletInfo方法擷取的字串。

erroePage屬性用來指定頁面專用的錯誤頁面,如果要為整個web制定錯誤頁面或者為不同類型的錯誤制定錯誤頁面,需要使用web.xml中的error-page元素。

eg:

ComputeSpeed.jps:

……

<%@ page errorPage="/WEB-INF/SpeedErrors.jsp" %>

……

SpeedErrors.jsp

……

<%@ page isErrorPage="true"%><%-- Default:false --%>

……

<%= exception %>
……

<% exception.printStackTrace(new PrintWriter(out)); %>

……

isThreadSafe屬性

jsp:page的isThreadSafe屬性和servlet的SingleThreadModel介面一樣,不推薦使用,應該使用顯式的同步措施。

extends屬性指定jsp頁面所產生的servlet的超類。一般用不到。

language屬性制定頁面使用的指令碼語言

jsp:page的xml相容文法

<jsp:directive.directiveType attribute="value" />

相關文章

聯繫我們

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