最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaWeb response和request對(duì)象原理及實(shí)例解析

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

HttpServletResponse:

HttpServletResponse對(duì)象服務(wù)器的響應(yīng)。這個(gè)對(duì)象中封裝了向客戶端發(fā)送數(shù)據(jù)、發(fā)送響應(yīng)頭,發(fā)送響應(yīng)狀態(tài)碼的方法。

字符編碼格式:

方法一:

// 設(shè)置response使用的碼表,控制response向?yàn)g覽器寫出數(shù)據(jù)的碼表

response.setCharacterEncoding("UTF-8");

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

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

方法二:

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

用refresh控制瀏覽器定時(shí)刷新

response.setHeader("refresh","3;url='/項(xiàng)目名/網(wǎng)頁(yè)名'");//3代表3s以后刷新

用expires頭控制瀏覽器緩存

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

請(qǐng)求重定向

response.sendRedirect("地址");

response細(xì)節(jié)

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

HttpServletRequest

HttpServletRequest對(duì)象代表客戶端的請(qǐng)求,當(dāng)客戶端通過HTTP協(xié)議訪問服務(wù)器時(shí),HTTP請(qǐng)求頭中的所有信息都封裝在這個(gè)對(duì)象中,開發(fā)人員通過這個(gè)對(duì)象的方法,可以獲得客戶這些信息。
獲得客戶機(jī)信息:

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

獲得客戶機(jī)請(qǐng)求頭

getHeader(String name)

getHeaders()

getHeaderNames()

獲得客戶機(jī)請(qǐng)求參數(shù)(客戶端提交的數(shù)據(jù))

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頁(yè)面轉(zhuǎn)發(fā)

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

request對(duì)象同時(shí)也是一個(gè)域?qū)ο螅_發(fā)人員通過request對(duì)象在實(shí)現(xiàn)轉(zhuǎn)發(fā)時(shí),把數(shù)據(jù)通過request對(duì)象帶給其它web資源處理。

setAttribute(String name,Object obj)

getAttribute(String name)

removeAttribute(String name)

getAttributeNames()

注意

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

include方法

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

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

請(qǐng)求重定向和請(qǐng)求轉(zhuǎn)發(fā)

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

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

RequestDispatcher.forward方法的調(diào)用者與被調(diào)用者之間共享相同的request對(duì)象和response對(duì)象,它們屬于同一個(gè)訪問請(qǐng)求和響應(yīng)過程;而HttpServletResponse.sendRedirect方法調(diào)用者與被調(diào)用者使用各自的request對(duì)象和response對(duì)象,它們屬于兩個(gè)獨(dú)立的訪問請(qǐng)求和響應(yīng)過程。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring boot 與kafka集成的示例代碼

    spring boot 與kafka集成的示例代碼

    這篇文章主要介紹了spring boot 與kafka集成的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • 輕松掌握java中介者模式

    輕松掌握java中介者模式

    這篇文章主要幫助大家輕松掌握java中介者模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Mybatis 中如何判斷集合的size

    Mybatis 中如何判斷集合的size

    這篇文章主要介紹了在Mybatis中判斷集合的size操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Springboot深入講解nocos的整合與使用

    Springboot深入講解nocos的整合與使用

    Nacos?是阿里巴巴推出來的一個(gè)新開源項(xiàng)目,這是一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái),在項(xiàng)目開發(fā)過程中,我們經(jīng)常使用nacos作為配置中心和注冊(cè)中心。本文章我們就從代碼層面研究下springboot是如何整合nacos使用的
    2022-07-07
  • 聊聊SpringBoot中組件無法被注入的問題

    聊聊SpringBoot中組件無法被注入的問題

    這篇文章主要介紹了SpringBoot中組件無法被注入的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java中s.charAt(index)用于提取字符串s中的特定字符操作

    Java中s.charAt(index)用于提取字符串s中的特定字符操作

    這篇文章主要介紹了Java中s.charAt(index)用于提取字符串s中的特定字符操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • SpringCloud Webflux過濾器增加header傳遞方式

    SpringCloud Webflux過濾器增加header傳遞方式

    這篇文章主要介紹了SpringCloud Webflux過濾器增加header傳遞方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • SpringMvc MultipartFile實(shí)現(xiàn)圖片文件上傳示例

    SpringMvc MultipartFile實(shí)現(xiàn)圖片文件上傳示例

    本篇文章主要介紹了SpringMvc MultipartFile實(shí)現(xiàn)圖片文件上傳示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • SpringBoot實(shí)戰(zhàn)之實(shí)現(xiàn)結(jié)果的優(yōu)雅響應(yīng)案例詳解

    SpringBoot實(shí)戰(zhàn)之實(shí)現(xiàn)結(jié)果的優(yōu)雅響應(yīng)案例詳解

    這篇文章主要介紹了SpringBoot實(shí)戰(zhàn)之實(shí)現(xiàn)結(jié)果的優(yōu)雅響應(yīng)案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 劍指Offer之Java算法習(xí)題精講二叉樹專項(xiàng)解析

    劍指Offer之Java算法習(xí)題精講二叉樹專項(xiàng)解析

    跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化
    2022-03-03

最新評(píng)論

清镇市| 台安县| 南丹县| 如皋市| 广丰县| 宁安市| 大理市| 根河市| 新蔡县| 乌鲁木齐县| 阿勒泰市| 宣城市| 新乡县| 都江堰市| 韩城市| 贺兰县| 阿克苏市| 乐陵市| 岳阳市| 株洲市| 桓台县| 喀喇沁旗| 化德县| 卓尼县| 固安县| 波密县| 会昌县| 青州市| 安泽县| 澄城县| 确山县| 广西| 荥经县| 海阳市| 图木舒克市| 金川县| 汽车| 井陉县| 会理县| 崇信县| 汉寿县|