JSP的執行過程
1、 用戶端發出請求
2、 Web容器將JSP轉議成Servlet原始碼
3、 Web容器將產生的原始碼進行編譯
4、 Web容器載入編譯後的代碼並執行
5、 把執行結果返回用戶端
JSP的異常處理機制
處理異常的操作
在錯誤處理頁上必須先倒入<%@ page isErrorPage="true"%>
異常處理寫為:
出現了異常:<%=exception %>,請檢查JSP頁面。<br/>
<!-- 輸出異常處理的錯誤訊息 -->
<%exception.printStackTrace(new PrintWriter(out)); %>
指定跳轉到哪個錯誤頁
<%@ page errorPage="error.jsp"%>
在web.xml中添加
<error-page>
<exception-type>
java.lang.ArithmeticException
</exception-type>
<location>
/error.jsp
</location>
</error-page>
可以將工程中的所有錯誤都跳轉到error.jsp頁面
發生404錯誤,會跳轉到404.jsp
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
404.jsp
<body>
你訪問的資源不存在 <br>
</body>
JSP的隱式對象(JSP的內建對象,也叫隱式對象)
JSP隱式對象是Web容器載入的一組類的執行個體。它是可以直接在JSP頁面使用的對象。分為4個主要類別:
– 輸入和輸出對象:控制頁面的輸入和輸出(request、response、out)。
– 範圍通訊對象:檢索與JSP頁面的Servlet相關的資訊(session、application、pageContext)。
– Servlet對象:提供有關頁面環境的資訊(page、config)。
– 錯誤對象:處理頁面中的錯誤(exception)。
Request對象:
Request隱式對象表示用戶端的請求,包含了所有的請求資訊,常用的方法:1、String getParameter(String name):根據頁面表單組件名稱擷取請求頁面提交的資料。2、String getParameterValues(String name):擷取頁面請求中一個表達組件對應多個值時的使用者的請求資料(eg:複選框)
Response對象:
Response隱式對象處理JSP產生的響應,然後將響應結果發送給用戶端,常用的方法:1、void setContentType(String name):設定作為響應產生的內容的類型和字元編碼。2、void sendRedirect(Strign name):發送一個響應給瀏覽器,指示其應請求另一個URL(會遺失資料,跳轉後不再執行sendRedirect方法下面的代碼)
Out對象:
Out對象表示輸出資料流,此輸出資料流將作為請求的響應發送到用戶端,常用方法有print()、println()和write()。
範圍通訊對象——
pageContext對象
pageContext對象使使用者可以訪問當前頁面範圍中定義的所有隱式對象。pageContext對象常用的方法:
1、getRequest()、getServletConfig()、getSession()等
2、void setAttribute(String name, Object value)
3、void getAttribute(String name)
Session對象
Session對象表示使用者的工作階段狀態,用此項機制可以輕易識別每一個使用者,能儲存和跟蹤使用者的工作階段狀態。Session的常用方法:
1、void setAttribute(String name, Object value)
2、void getAttribute(String name)
Application對象
application對象作用於整個應用程式,所有的用戶端視窗都可以共用該對象,從伺服器開始就存在,直到伺服器關閉為止。application對象最常用的方法:
1、void setAttribute(String name, Object value):以名稱/值的方式,將一個對象的值存放到application中(存的值的類型為Object)。
2、void getAttribute(String name):根據名稱去擷取application中存放對象的值(擷取的值的類型為Object)。