JSP數據交互(一)


內置對象:

  JSP內置對象是Web容器創建一組對象,不用通過手動new就可以使用

 

JSP九大內置對象:

   名稱                                                類型                      作用域                     

  session  (用來保存會話信息,可以實現在同一-用戶的不同請求之間共享數)          javax.servlet.http.HttpSession                  Session  

  application  (代表了當前應用程序的上下文,可以在不同的用戶之間共享信息)         javax.servlet.ServletContext                    Application

  out  (用戶向客戶端,瀏覽器你輸出數據)                        javax.servlet.jsp.JspWriter                   page

  request  (封裝了來自客戶端,瀏覽器的各種信息)                    javax.servlet.ServletRequest                 Request

  response  (封裝了服務器的響應信息)                          javax.servlet.SrvletResponse                 page

  pageContext  (提供了對JSP頁面所有對象以及命名空間的訪問)              javax.servlet.jsp.PageContext                 page

  page  (指向了當前JSP程序本身)                            javax.lang.Object                       page

  exception  (封裝了JSP程序執行過程中發生的異常和錯誤信息)               javax.lang.Throwable   

  config  (封裝了應用程序的配置信息)                            javax.servlet.ServletConfig                  page

 

out對象:

  方法名          說明

  print或println      輸出數據

  newLine        輸出換行字符

  flush           輸出緩沖區數據

  close          關閉輸出流

  clear           清除緩沖區數據,但不輸出到客戶端

  clearBuffer       清除緩沖區數據,輸出到客戶端

  getBufferSize        獲得緩沖區大小

  getRemaining        獲取緩沖區中沒有被占用的空間

  isAutoFlush         是否為自動輸出

 

request對象:

  方法名          說明

  isUserRole      判斷認證后的用戶是否屬於某一成員組

  getAttribute      獲取指定屬性的值,如該屬性不存在返回null

  getAttributeNames   獲取所有屬性名的集合

  getCookies      獲取所有Cookie對象

  getCharacterEncoding 獲取請求的字符編碼方法

  getContentLength   返回請求正文的長度,如不確定返回-1

  getHeader       獲取指定名字報頭值

  getHeaders      獲取指定名字報頭的所有值,一個枚舉

  getHeaderNames   獲取所有報頭的名字,一個枚舉

  getInputStream    返回請求輸入流,獲取請求中的數據

  getMethod      獲取客戶端向服務器端傳送數據的方法

  getParameter      獲取指定名字的參數值

  getParameterNames  獲取所有參數的名字,一個枚舉

  getParameterValues  獲取指定名字參數的所有值

  getProtocol      獲取客戶端向服務器端傳送數據的協議名稱

  getQueryString     獲取一get方法向服務器傳送的查詢字符串

  getRequestURL   獲取發出請求字符串的客戶端地址

  getRemoteAddr   獲取客戶端的IP地址

  getRemoteHost    獲取客戶端的名字

  getSession      獲取和請求相關的會話

  getServerName    獲取服務器的名字

  getServerPath    獲取客戶端請求問價的路勁

  getServerPort    獲取服務器的端口號

  removeAttribute    刪除請求中的一個屬性

  setAttribute      設置指定名字參數值

 

response對象:

  方法名          說明

  addCookie      添加一個Cookie對象

  addHeader      添加Http文件指定名字開頭信息

  containHeader    判斷指定名字Http文件信息是否存在

  encodeURL      使用sessionid封裝URL

  flushBuffer      強制把當前緩沖區內容發送到客戶端

  getBufferSize     返回緩沖區大小

  getOutputStream    返回客戶端的輸出對象

  sendError        向客戶端發送錯誤信息

  sendRedirect     把響應發送到另一個位置進行處理

  setContentType    設置響應的MIME類型

  setHeader        設置指定名字的Http文件頭信息

 

session對象:

  方法名          說明

  getAttribute      獲取指定名字的屬性

  getAttributeNames   獲取session中全部的屬性名字,一個枚舉

  getCreationTime    返回色session的創建時間

  getId          獲取回話標識符

  getLastAccessedTime   返回最后發送請求的時間

  getMaxInactiveInterval  返回session對象的生存時間單位千分之一秒

  invalidate       銷毀session對象

  isNew          每個請求是否會產生新的session對象

  removeAttribute    刪除指定名字的屬性

  setAttribute      設置指定名字的屬性值

 

application對象

  方法名            說明

  getAttribute      獲取應用對象中指定名字的屬性值

  getAttributeNames    獲取應用對象中所有屬性的名字,一個枚舉

  getInitParameter      返回應用對象中指定名字的初始參數值

  getServletInfo     返回Servlet編譯器中當前版本信息

  setAttribute      設置應用對象中指定名字的屬性值

 

config對象:

  方法名            說明

  getServletContext    返回執行的Servlet的環境對象

  getServletName     返回所有執行的Servlet的名字

  getInitParamter     返回執行名字的初始參數值

  getInitParamterNames  返回該JSP中所有初始參數名,一個枚舉

 

page對象:

  方法名            說明

  toString          將當前項目的信息打印出來

  getClass         返回當前Object類

  hashCode        返回page對象的hashCode值

  equals          用於比較對象是否與當前對象相同

 

pageContext對象:

  方法名            說明

  forword         重定向到另一頁面或Servlet組件

  getAttribute        獲取某范圍中指定名字的屬性值

  findAttribute       按范圍搜索指定名字的屬性

  removeAttribute      刪除某范圍中指定名字的屬性

  setAttribute        設定某范圍中指定名字的屬性值

  getException        返回當前異常對象

  getRequest        返回當前請求對象

  getResponse        返回當前響應對象

  getServleConfig      返回當前頁面的ServletConfig對象

  getServletContext      返回所有頁面共享的ServletContext對象

  getSession         返回當前頁面的會話對象

 

post和get的區別:
     1.從安全角度考慮   post更安全一些   get不安全 ;
     2.post方式提交數據可以提交大概幾GB的數據   get方式提交數據最大也就到幾KB;

 

解決亂碼的方案:
    post亂碼解決:request.setCharacterEncoding("UTF-8");
    get亂碼解決: hobbys[i]=new String(hobbys[i].getBytes("ISO-8859-1"),"UTF-8");

HTTP狀態碼:

      1** 信息,服務器收到請求,需要請求者繼續執行操作
      2** 成功,操作被成功接收並處理
      3** 重定向,需要進一步的操作以完成請求
      4** 客戶端錯誤,請求包含語法錯誤或無法完成請求
      5** 服務器錯誤,服務器在處理請求的過程中發生了錯誤
  
404和500錯誤狀態碼配置頁面:
         在當前項目的web.xml當中加入如下配置信息:
          <error-page>
           <error-code>500</error-code>
           <location>/500.jsp</location>
          </error-page>
          <error-page>
           <error-code>404</error-code>
           <location>/404.jsp</location>
          </error-page>

 

response:響應
      轉發:(是在服務器內部進行,無法訪問到除內部以外的資源):request.getRequestDispatcher("/response/welcome.jsp").forward(request, response);
      重定向:(全路徑):response.sendRedirect("/Chap02/response/Login.jsp");

 

contentType和pageEncoding區別:

    contentType定義響應的資源類型,也可以包含JSP頁面和響應內容的字符集;

    pageEncoding指定JSP文件的字符集及默認的contentType字符集;

 

轉發和重定向區別:

         1.轉發是在服務器內部進行,重定向是客戶端完成的,需要寫入全路徑,地址xxxxxxx
         2.轉發請求1次,其余的操作都是在服務器內部進行的;重定向請求至少2次,其余的請求命令客戶端再次請求一個URL
         3.轉發可以攜帶這次請求的數據,重定向不帶數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM