javaweb----part5 jsp
jsp是將java的實現邏輯和HTML 結合到了一起.
jsp的原理就是 jsp代碼在第一執行的時候會生成一個Java文件,
然後編譯成class文件,裏面就相當於之前寫的servlet文件.
jsp中的page指令用來指導頁面中的某些特性
有多個屬性.‘
language="java"
pageEncoding="UTF-8"
contentType="text/html;charset=UTF-8" 指定響應頭的信息
import="" 需要導入的java包
session="boolean" //是否創建session
errorPage="url" //指定此jsp錯誤跳轉的頁面
isErrorPage="boolean " //是否指定此jsp是錯誤處理頁面 可以拿到exception的信息
page裏面設置errorPage="url" 指定錯誤頁面
1.防止系統內部的錯誤信息通過報錯泄露給訪問者
2.展示友好的可視化的報錯頁面,避免用戶的恐慌
3.有機會把程序沒有處理的異常記錄下來,方便程序員來發現錯誤
在xml中配置統一配置錯誤頁面
<error-page><error-type></error-type><loaction></location></error-page>
<error-page><error-code></error-code><loaction></location></error-page>
location以"/"開頭
jsp的對象,
都可以用setAttrbute()鍵值對的方式來設置屬性,
然後getAttrbute來獲取屬性
pageContext對象有一個findAttrbute()方法
依次從pageContext/request/session/application裏面
去尋找name=value的鍵值對然後把值返回;
只要找到就返回,不會再繼續往後去尋找覆蓋.
統一配置錯誤頁面
<error-page>
<exception-type>java.lang.Throwabke</exception-type>
<location>/Error.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/404.jsp</location>
</error-page>
1.瀏覽器不直接訪問jsp文件,而是直接去找servlet文件
2.servlet把數據準備好,然後 forward給給JSP去顯示
3.servlet和JSP直接傳遞數據,不要傳遞ResuleSet,
而是傳遞普通的對象或者對象集合.
forward 和sendRedirect的區別
1.如果邏輯是服務器處理的,"/"就可以表示項目的跟目錄
如果邏輯是瀏覽器處理的,就不能加"/".
2.sendRedirect發次兩次請求,兩次請求的數據不共享;
第一次請求瀏覽器的請求,第二次請求重定向之後的請求.
而req.set是把屬性存在了第一個域名的網站上。
req.get就無法再第二個域名吧屬性取出來.
javaweb----part5 jsp