java_第一年_JavaWeb(7)

JSP執行過程html

  1. 客戶端發出請求訪問JSP文件
  2. JSP Container將要訪問的JSP文件轉譯爲Servlet的源代碼(轉譯時期),並將其編譯成.class文件(編譯時期);
  3. 執行編譯後的.class文件並將結果返回給客戶端(請求時期)

在轉譯後的Servlet的源代碼中(.java),存在_jspService的方法,該方法將JSP中的java代碼原封不動地翻譯出來,而其中的html則經過out.write("<html標籤>\r\n")這樣的方法翻譯出來;java

JSP聲明<%! java代碼%>;JSP註釋<%--註釋內容--%>;web

JSP指令:jsp

基本的語法格式<%@ 指令 屬性名= ‘值’ %>spa

JSP有3大指令:翻譯

  • Page指令:用於定義JSP頁面的各類屬性;

經常使用屬性:code

import屬性,引入多個包和類,之間用逗號隔開;注:Jsp頁面默認自動導入的包有java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.servlet.http.*;xml

errorPage屬性,指明當出錯後所跳轉的頁面,其中「/」表示 WEB程序的根目錄;也能夠在web.xml中設置好其出錯後的處理方式,不過其優先級低於errorPage指令;htm

如若使用web.xml設置出錯處理方式,是經過<error-page>標籤實現的,該標籤有3個子元素:<error-code>:(指定錯誤狀態碼)、<exception-type>:(指定異常類的徹底限定名)、<location>(指定處理的跳轉頁面);對象

isErrorPage屬性,默認狀況下的false狀態,能夠在錯誤頁面中設置爲true,其做用_jspService方法中會多提供聲明一個exception對象,可經過該對象獲取錯誤信息,如:

<body> 異常信息以下:<%=exception.getMessage()%>
</body>
  • include指令:引入文件,會將兩個jsp翻譯成一個Servlet,爲靜態引入,被引入文件常常用.jspf加以區分,經常使用語法以下:
    <%@include file="/xxx/xxx" %>

    其中第一個「/」表示當前web應用;

與jsp:include指令加以區分,這個指令爲動態指令,其運行流程是將所include的文件運行後將結果返回;

  • taglib指令:聲明用戶使用自定義標籤,將標籤庫描述符文件導入jsp頁面中,語法以下:
    <%@taglib uri="/xxx" prefix="xxx"%>

     

uri屬性:定位標籤庫描述符的位置。惟一標識和前綴相關的標籤庫描述符,能夠使用絕對或相對

prefix屬性:標籤的前綴,區分多個自定義標籤。不能夠使用保留前綴和空前綴,遵循XML命名空間的命名約定。

相關文章
相關標籤/搜索