JSP (一)
1.什麼是JSP內建物件
JSP內建物件是wed容器建立的一組物件
例子:
1 <% 2 int[] value = {60,70,80}; 3 for(int i:value){ 4 out.println(i); 5 } 6 %>
沒有進行宣告和建立,便可以使用out物件
九大內建物件
JSP中一共預先定義了9個這樣的物件,分別為:request、response、session、application、out、pagecontext、config、page、exception 這些物件在客戶端與伺服器互動的過程中完成不同的功能
1、request物件
request 物件是 javax.servlet.httpServletRequest型別的物件。 該物件代表了bai客戶端的請求資訊,主要用du於接受通過HTTP協議傳送到伺服器的資料zhi。(包括頭資訊、系統資訊、請求方式以及請求引數等)。request物件的作用域為一次請求。
2、response物件
response 代表的是對客戶端的響應,主要是將JSP容器處理過的物件傳回到客戶端。response物件也具有作用域,只在JSP頁面內有效。
3、session物件
session 物件是由伺服器自動建立的與使用者請求相關的物件。伺服器為每個使用者都生成一個session物件,用於儲存該使用者的資訊,跟蹤使用者的操作狀態。session物件內部使用Map類來儲存資料,因此儲存資料的格式為 “Key/value”。 session物件的value可以使複雜的物件型別,而不僅僅侷限於字串型別。
application 物件可將資訊儲存在伺服器中,直到伺服器關閉,否則application物件中儲存的資訊會在整個應用中都有效。與session物件相比,application物件生命週期更長,類似於系統的“全域性變數”。
5、out 物件
out 物件用於在Web瀏覽器內輸出資訊,並且管理應用伺服器上的輸出緩衝區。在使用 out 物件輸出資料時,可以對資料緩衝區進行操作,及時清除緩衝區中的殘餘資料,為其他的輸出讓出緩衝空間。待資料輸出完畢後,要及時關閉輸出流。
6、pageContext 物件
pageContext 物件的作用是取得任何範圍的引數,可以獲取 JSP頁面的out、request、reponse、session、application 等物件。pageContext物件的建立和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext物件。
config 物件的主要作用是取得伺服器的配置資訊。通過 pageConext物件的 getServletConfig() 方法可以獲取一個config物件。當一個Servlet 初始化時,容器把某些資訊通過 config物件傳遞給這個 Servlet。 開發者可以在web.xml 檔案中為應用程式環境中的Servlet程式和JSP頁面提供初始化引數。
8、page 物件
page 物件代表JSP本身,只有在JSP頁面內才是合法的。 page隱含物件本質上包含當前 Servlet介面引用的變數,類似於Java程式設計中的 this 指標。
9、exception 物件
exception 物件的作用是顯示異常資訊,只有在包含 isErrorPage="true" 的頁面中才可以被使用,在一般的JSP頁面中使用該物件將無法編譯JSP檔案。excepation物件和Java的所有物件一樣,都具有系統提供的繼承結構。exception 物件幾乎定義了所有異常情況。在Java程式中,可以使用try/catch關鍵字來處理異常情況;在JSP頁面中出現沒有捕獲到的異常,就會生成 exception 物件,並把 exception 物件傳送到在page指令中設定的錯誤頁面中,然後在錯誤頁面中處理相應的 exception 物件。
request和response(包括兩者在什麼情況下使用)
request物件主要用於處理客戶端請求
request物件常用方法
String getParameter(String name)
根據表單元件名稱獲取提交資料
String[ ] getParameterValues(String name)
獲取表單元件對應多個值時的請求資料
void setCharacterEncoding(String charset)
指定每個請求的編碼
RequestDispatcher getRequestDispatcher(String path)
返回一個RequestDispatcher物件,該物件的forward( )方法用於轉發請求
處理中文亂碼問題2
開啟tomcat資料夾 然後開啟conf/server.xml ( 注意:UTF-8需要加引號,不然會報錯)
JSP內建物件response(不能攜帶資訊)
response物件用於響應客戶請求並向客戶端輸出不同的資訊
從伺服器檢索到資訊通過設定response物件的響應引數等響應到客戶端
response.sendRedirect("welcome.jsp");
頁面重定向
void sendRedirect(String location)
客戶端將重新發送請求到指定的URL
何攜帶資訊跳轉
使用轉發取代重定向實現頁面跳轉
轉發的作用:在伺服器端,將請求傳送給伺服器上的其他資源,以共同完成一次請求的處理 (其他資源代表其他jsp檔案)
轉發的實現:RequestDispatcher物件的forward()方法
request.getRequestDispatcher(“welcome.jsp”).foward(request,response);
RequestDispatcher rd = request.getRequestDispatcher("welcome.jsp").foward(request,response);
轉發和重定向的區別
轉發:轉發是在伺服器端發揮作用,將同一請求在伺服器資源間進行傳遞
客戶端瀏覽器的位址列不會顯示轉向後的地址