1. 程式人生 > 實用技巧 >JSP (一)

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可以使複雜的物件型別,而不僅僅侷限於字串型別。
4、application物件
  application 物件可將資訊儲存在伺服器中,直到伺服器關閉,否則application物件中儲存的資訊會在整個應用中都有效。與session物件相比,application物件生命週期更長,類似於系統的“全域性變數”。
5、out 物件
  out 物件用於在Web瀏覽器內輸出資訊,並且管理應用伺服器上的輸出緩衝區。在使用 out 物件輸出資料時,可以對資料緩衝區進行操作,及時清除緩衝區中的殘餘資料,為其他的輸出讓出緩衝空間。待資料輸出完畢後,要及時關閉輸出流。
6、pageContext 物件
  pageContext 物件的作用是取得任何範圍的引數,可以獲取 JSP頁面的out、request、reponse、session、application 等物件。pageContext物件的建立和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext物件。
7、config 物件
  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);

轉發和重定向的區別

轉發:轉發是在伺服器端發揮作用,將同一請求在伺服器資源間進行傳遞

客戶端瀏覽器的位址列不會顯示轉向後的地址