1.Servlet與JSP關系
JSP工作原理:
一個JSP檔案第一次被請求時,JSP引擎把該JSP檔案轉換成為一個servlet
JSP引擎使用javac把轉換成的servlet的源檔案編譯成相應的class檔案
對每一個請求,JSP引擎建立一個新的線程來處理請求。
JSP的Servlet本質: 2.JSP頁面生命周期階段 | 描述 |
轉譯 | 将JSP源檔案轉譯成對應的Servlet源檔案 |
編譯 | 編譯Java源檔案為類檔案 |
加載 | 将類加載至記憶體 |
執行個體化 | 建立一個Servlet類執行個體對象 |
初始化 | 調用_jspInit()方法,最終調用Servlet類的init()方法初始化 |
服務 | 調用_jspService()方法,最終調用Servlet類的service()方法,将請求和響應傳遞進對應的doXXX()方法 |
銷毀 | 調用_jspDestroy()方法,最終調用destroy()方法,銷毀Servlet |
3.JSP與Servlet的内部轉換:
JSP轉譯Servlet(Java生命周期第一階段) : 解析 校檢 轉譯
4.page僞指令屬性
import屬性(相當于java中的import)
用于描述JSP頁面中使用類的全包名,可選屬性
<%@page import=“java.io.*,java.sql.*”%>
預設導入包:java.lang、javax.servlet、javax.servlet.jsp、javax.servlet.http
session屬性
session屬性指定頁面是否需要一個http會話
<%@page session=“true/false”%>
errorPage和isErrorPage屬性(JSP異常處理)
JSP産生一個不能捕獲的溢出時跳轉到一個錯誤頁面
<%@page errorPage=“error.jsp”%>
在error.jsp頁面中必須加入<%@page isErrorPage=“true”%>才能進行錯誤處理
language和extends屬性
language屬性指定JSP頁面中聲明、腳本、和表達式中使用語言,預設是Java
<%@page language=“java” %>
extends屬性用于指定JSP頁面對應Servlet類的基類,極少使用
<%@page extends=“mypackage.BaseServlet”%>
contentType和pageEncoding屬性
contentType屬性指定頁面響應的MIME類型和字元編碼
<%@page
contentType =“text/html;charset=UTF-8” %>
pageEncoding屬性用于指定JSP頁面字元編碼格式,預設值為ISO-8859-1
<%@page pageEncoding =“UTF-8”%>