亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaWeb response和request對象原理及實例解析

 更新時間:2020年11月03日 10:28:00   作者:馬悅悅  
這篇文章主要介紹了JavaWeb response和request對象原理及實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

HttpServletResponse:

HttpServletResponse對象服務器的響應。這個對象中封裝了向客戶端發(fā)送數據、發(fā)送響應頭,發(fā)送響應狀態(tài)碼的方法。

字符編碼格式:

方法一:

// 設置response使用的碼表,控制response向瀏覽器寫出數據的碼表

response.setCharacterEncoding("UTF-8");

// 指定瀏覽器打開客戶端發(fā)送數據的碼表

response.setHeader("content-type", "text/html;charset=UTF-8");

方法二:

response.setContentType("text/html;charset=UTF-8");

用refresh控制瀏覽器定時刷新

response.setHeader("refresh","3;url='/項目名/網頁名'");//3代表3s以后刷新

用expires頭控制瀏覽器緩存

response.setDateHeader("expires",System.currentTimeMillis()+1000*3600);

請求重定向

response.sendRedirect("地址");

response細節(jié)

  • getOutputStream和getWriter方法分別用于得到輸出二進制數據、輸出文本數據的ServletOuputStream、Printwriter對象。
  • getOutputStream和getWriter這兩個方法互相排斥,調用了其中的任何一個方法后,就不能再調用另一方法。
  • Servlet程序向ServletOutputStream或PrintWriter對象中寫入的數據將被Servlet引擎從response里面獲取,Servlet引擎將這些數據當作響應消息的正文,然后再與響應狀態(tài)行和各響應頭組合后輸出到客戶端。
  • Serlvet的service方法結束后,Servlet引擎將檢查getWriter或getOutputStream方法返回的輸出流對象是否已經調用過close方法,如果沒有,Servlet引擎將調用close方法關閉該輸出流對象。

HttpServletRequest

HttpServletRequest對象代表客戶端的請求,當客戶端通過HTTP協議訪問服務器時,HTTP請求頭中的所有信息都封裝在這個對象中,開發(fā)人員通過這個對象的方法,可以獲得客戶這些信息。
獲得客戶機信息:

  • getRequestURL() //返回客戶端發(fā)出請求時的完整URL
  • getRequestURI() //返回請求行中的資源名部分
  • getQueryString() //方法返回請求行中的參數部分
  • getPathInfo() //返回請求URL中的額外路徑信息。額外路徑信息是請求URL中的位于Servlet的路徑之后和查詢參數之前的內容,它以“/”開頭
  • getRemoteAddr() //返回發(fā)出請求的客戶機的IP地址
  • getRemoteHost() //返回發(fā)出請求的客戶機的完整主機名
  • getRemotePort() //返回客戶機所使用的網絡端口號
  • getLocalAddr() //返回WEB服務器的IP地址
  • getLocalName() //返回WEB服務器的主機名

獲得客戶機請求頭

getHeader(String name)

getHeaders()

getHeaderNames()

獲得客戶機請求參數(客戶端提交的數據)

getParameter(String name)

getParameterValues(String name)

getParameterNames()

getParameterMap()

request亂碼

// post提交亂碼

request.setCharacterEncoding("UTF-8");

// get提交亂碼

String username = request.getParameter("username");

username = new String(username.getBytes("iso8859-1"), "UTF-8");

request頁面轉發(fā)

request.getRequestDispatcher("地址").forward(request,response);

request對象同時也是一個域對象,開發(fā)人員通過request對象在實現轉發(fā)時,把數據通過request對象帶給其它web資源處理。

setAttribute(String name,Object obj)

getAttribute(String name)

removeAttribute(String name)

getAttributeNames()

注意

  • forward方法用于將請求轉發(fā)到RequestDispatcher對象封裝的資源。
  • 如果在調用forward方法之前,在Servlet程序中寫入的部分內容已經被真正地傳送到了客戶端,forward方法將拋出IllegalStateException異常。
  • 如果在調用forward方法之前向Servlet引擎的緩沖區(qū)中寫入了內容,只要寫入到緩沖區(qū)中的內容還沒有被真正輸出到客戶端,forward方法就可以被正常執(zhí)行,原來寫入到輸出緩沖區(qū)中的內容將被清空,但是,已寫入到HttpServletResponse對象中的響應頭字段信息保持有效。

include方法

request.getRequestDispatcher("地址").include(request,response);

RequestDispatcher.include方法用于將RequestDispatcher對象封裝的資源內容作為當前響應內容的一部分包含進來,從而實現可編程的服務器端包含功能。
被包含的Servlet程序不能改變響應消息的狀態(tài)碼和響應頭,如果它里面存在這樣的語句,這些語句的執(zhí)行結果將被忽略

請求重定向和請求轉發(fā)

RequestDispatcher.forward方法只能將請求轉發(fā)給同一個WEB應用中的組件;而HttpServletResponse.sendRedirect 方法還可以重定向到同一個站點上的其他應用程序中的資源,甚至是使用絕對URL重定向到其他站點的資源。

如果傳遞給HttpServletResponse.sendRedirect 方法的相對URL以“/”開頭,它是相對于整個WEB站點的根目錄;如果創(chuàng)建RequestDispatcher對象時指定的相對URL以“/”開頭,它是相對于當前WEB應用程序的根目錄。

RequestDispatcher.forward方法的調用者與被調用者之間共享相同的request對象和response對象,它們屬于同一個訪問請求和響應過程;而HttpServletResponse.sendRedirect方法調用者與被調用者使用各自的request對象和response對象,它們屬于兩個獨立的訪問請求和響應過程。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Spring Cloud Hystrix 服務容錯保護的原理實現

    Spring Cloud Hystrix 服務容錯保護的原理實現

    這篇文章主要介紹了Spring Cloud Hystrix 服務容錯保護的原理實現,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 使用Filter攔截器如何實現請求跨域轉發(fā)

    使用Filter攔截器如何實現請求跨域轉發(fā)

    這篇文章主要介紹了使用Filter攔截器如何實現請求跨域轉發(fā),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java 創(chuàng)建動態(tài)類和查看方法列表信息的實例

    Java 創(chuàng)建動態(tài)類和查看方法列表信息的實例

    這篇文章主要介紹了 Java 創(chuàng)建動態(tài)類和查看方法列表信息的實例的相關資料,需要的朋友可以參考下
    2017-06-06
  • SpringBoot2線程池定義使用方法解析

    SpringBoot2線程池定義使用方法解析

    這篇文章主要介紹了SpringBoot2線程池定義使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Java定位問題線程解析

    Java定位問題線程解析

    這篇文章主要介紹了Java定位問題線程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java實現學生管理系統詳解流程

    Java實現學生管理系統詳解流程

    這篇文章主要為大家詳細介紹了如何利用Java語言實現學生管理系統,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 解決IDEA2020.1版本不兼容Lombok的問題

    解決IDEA2020.1版本不兼容Lombok的問題

    這篇文章主要介紹了解決IDEA2020.1版本不兼容Lombok的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • Java泛型T,E,K,V,N,?與Object區(qū)別和含義

    Java泛型T,E,K,V,N,?與Object區(qū)別和含義

    Java?泛型(generics)是?JDK?5?中引入的一個新特性,?泛型提供了編譯時類型安全檢測機制,該機制允許程序員在編譯時檢測到非法的類型。本文將詳細講講Java泛型T、E、K、V、N、?和Object區(qū)別和含義,需要發(fā)可以參考一下
    2022-03-03
  • 基于SpringBoot?Mock單元測試詳解

    基于SpringBoot?Mock單元測試詳解

    這篇文章主要介紹了基于SpringBoot?Mock單元測試詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 詳解Java序列化機制

    詳解Java序列化機制

    這篇文章主要介紹了Java序列化機制的相關資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12

最新評論