HttpServletRequest接口是Servlet規(guī)范的一員,需要的朋友可以參考下" />

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

Java中的HttpServletRequest接口詳細(xì)解讀

 更新時(shí)間:2023年11月07日 09:30:50   作者:Husky_DQ  
這篇文章主要介紹了Java中的HttpServletRequest接口詳細(xì)解讀,是一個(gè)接口,全限定名稱為Jakarta.Serclet.http.HttpServletRequest
HttpServletRequest接口是Servlet規(guī)范的一員,需要的朋友可以參考下

HttpServletRequest接口

  • 是一個(gè)接口,全限定名稱為Jakarta.Serclet.http.HttpServletRequest
  • HttpServletRequest接口是Servlet規(guī)范的一員
  • HttpServletRequst接口的父接口是:ServletRequest
  • HttpServletRequest的實(shí)現(xiàn)類是Tomcat實(shí)現(xiàn)的
  • HttpServletRequest對(duì)象是Tomcat創(chuàng)建的
  • HttpServletRequest對(duì)象中包裝的信息
    • HttpServletRequest封裝了Http的請(qǐng)求協(xié)議
    • Tomcat將用戶請(qǐng)求的Http協(xié)議中的信息解析出來封裝到HttpServletRequest對(duì)象中
    • javaweb程序員面向接口編程,調(diào)用方法卡可以獲取到請(qǐng)求的信息
  • request與response的生命周期
    • request對(duì)象和response對(duì)象,一個(gè)請(qǐng)求對(duì)象,一個(gè)響應(yīng)對(duì)象
    • 一次請(qǐng)求對(duì)應(yīng)一個(gè)request
  • HttpServletRequest采用方法
    • 獲取前端用戶提交的數(shù)據(jù)
String getParameter(String name)//獲取Map
Map<Sring String[]> getParameterMap()//獲取Map集合中所有的key
Enumeration<String> getParameterNames()//根據(jù)key獲取Map集合的value
String[] getParameterValues(java.lang.String name)//獲取value這個(gè)一維數(shù)組的第一個(gè)元素(最常用)
//以上方法與獲取用戶提交的數(shù)據(jù)有關(guān)系
  • request對(duì)象也叫做請(qǐng)求域?qū)ο?ul>
  • 應(yīng)用域?qū)ο骃ervletContext(Servlet上下文對(duì)象)
  • 往應(yīng)用域中綁定數(shù)據(jù)的情況
    1. 所有用戶共享的屬于
    2. 共享的數(shù)據(jù)量小
    3. 這個(gè)共享的數(shù)據(jù)很少的修改操作
    4. 使用應(yīng)用域?qū)ο罂梢源蟠筇岣叱绦驁?zhí)行效率
    5. 實(shí)際上往應(yīng)用域添加數(shù)據(jù)就是將數(shù)據(jù)放進(jìn)緩存當(dāng)中,用戶訪問時(shí)直接在緩存中讀取。減少IO操作,大大提升系統(tǒng)的性能,緩存技術(shù)是提高系統(tǒng)性能的重要手段
  • ServletRequest有三個(gè)操作域的方法
		void setAttribute(String name,Object obj);//綁定數(shù)據(jù)
		Object getAttribute(String name);//從域當(dāng)中根據(jù)name獲取數(shù)據(jù)
		void removeAttribute(String name);//從域當(dāng)中將綁定的數(shù)據(jù)移除
		//以上操作類似于Map集合的操作
		Map<String,Object> map;
		map.put("name",obj);
		Object obj=map.get("name");
		map.remove("name");

ServletRequest里的資源是不共享的,范圍比較小

ServletContext與Request的選取原則: 范圍小的優(yōu)先

  • 請(qǐng)求轉(zhuǎn)發(fā)機(jī)制(一次啟動(dòng)兩個(gè)Servlet)
    • 獲取請(qǐng)求轉(zhuǎn)發(fā)器對(duì)象,將需要跳轉(zhuǎn)的資源的路徑告知給Tomcat服務(wù)器
RequestDispatcher dispatcher=request.getRequestDispatcher("路徑");
  • 調(diào)用請(qǐng)求轉(zhuǎn)發(fā)器RequestDispatcher方法,參數(shù)必須傳遞給下一個(gè)資源
dispatcher.forward(request,response);
  • 兩個(gè)Servlet共享數(shù)據(jù)
    • ServletContext范圍太大,太占用資源
    • 可以放到Request請(qǐng)求域中,然后轉(zhuǎn)發(fā)即可
  • 轉(zhuǎn)發(fā)的下一個(gè)資源不一定是Servlet
    • Tomcat的合法資源即可,例如html
    • 轉(zhuǎn)發(fā)的時(shí)候,路徑以"/"開始,不加項(xiàng)目名
  • HttpServletRequest接口常用方法
//獲取客戶端的IP地址
String remoteAddr=request.getRemoteAddr();
//get請(qǐng)求在請(qǐng)求行上提交數(shù)據(jù)
//post請(qǐng)求在請(qǐng)求體中提交數(shù)據(jù)
//設(shè)置請(qǐng)求體的的字符集(解決post請(qǐng)求的亂碼問題)
request.setCharacterEncoding("UTF-8");
//獲取應(yīng)用的根路徑
String contextPath=request.getContextPath();
//獲取請(qǐng)求方式
String method=request.getMethod();
//獲取請(qǐng)求的URI
String uri=request.getRequestURI();
//獲取servlet路徑
String servletPath=request.getServletPath();

到此這篇關(guān)于Java中的HttpServletRequest接口詳細(xì)解讀的文章就介紹到這了,更多相關(guān)HttpServletRequest接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot+thymeleaf+ajax實(shí)現(xiàn)局部刷新詳情

    SpringBoot+thymeleaf+ajax實(shí)現(xiàn)局部刷新詳情

    這篇文章主要介紹了SpringBoot+thymeleaf+ajax實(shí)現(xiàn)局部刷新詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Spring Cloud項(xiàng)目前后端分離跨域的操作

    Spring Cloud項(xiàng)目前后端分離跨域的操作

    這篇文章主要介紹了Spring Cloud項(xiàng)目前后端分離跨域的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 淺析SpringCloud Alibaba-Nacos 作為注冊(cè)中心示例代碼

    淺析SpringCloud Alibaba-Nacos 作為注冊(cè)中心示例代碼

    這篇文章主要介紹了SpringCloud Alibaba-Nacos 作為注冊(cè)中心示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • RocketMQ消息生產(chǎn)者是如何選擇Broker示例詳解

    RocketMQ消息生產(chǎn)者是如何選擇Broker示例詳解

    這篇文章主要為大家介紹了RocketMQ消息生產(chǎn)者是如何選擇Broker示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • JAVA多線程實(shí)現(xiàn)生產(chǎn)者消費(fèi)者的實(shí)例詳解

    JAVA多線程實(shí)現(xiàn)生產(chǎn)者消費(fèi)者的實(shí)例詳解

    這篇文章主要介紹了JAVA多線程實(shí)現(xiàn)生產(chǎn)者消費(fèi)者的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 詳解java開發(fā)webservice的幾種方式

    詳解java開發(fā)webservice的幾種方式

    webservice的應(yīng)用已經(jīng)越來越廣泛了,下面介紹幾種在Java體系中開發(fā)webservice的方式,有興趣的可以了解一下。
    2016-11-11
  • Java?Handler同步屏障淺析講解

    Java?Handler同步屏障淺析講解

    同步屏障機(jī)制是什么?Handler發(fā)送的消息分為普通消息、屏障消息、異步消息,一旦Looper在處理消息時(shí)遇到屏障消息,那么就不再處理普通的消息,而僅僅處理異步的消息。不再使用屏障后,需要撤銷屏障,不然就再也執(zhí)行不到普通消息了
    2022-08-08
  • java利用冒泡排序?qū)?shù)組進(jìn)行排序

    java利用冒泡排序?qū)?shù)組進(jìn)行排序

    這篇文章主要介紹了java利用冒泡排序?qū)?shù)組進(jìn)行排序的方法,實(shí)例分析了冒泡排序的概念與java實(shí)現(xiàn)方法,以及java操作數(shù)組的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • flutter?TabBarView?動(dòng)態(tài)添加刪除頁(yè)面的示例代碼

    flutter?TabBarView?動(dòng)態(tài)添加刪除頁(yè)面的示例代碼

    在Flutter中使用TabBarView動(dòng)態(tài)添加和刪除頁(yè)面時(shí),如果未為每個(gè)頁(yè)面設(shè)置唯一的key,會(huì)導(dǎo)致刪除頁(yè)面時(shí)出現(xiàn)狀態(tài)錯(cuò)誤或刪除錯(cuò)誤的頁(yè)面,正確的做法是為每個(gè)頁(yè)面指定全局唯一的key,這樣可以確保頁(yè)面在添加和刪除時(shí)狀態(tài)正確,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Java使用jSerialComm進(jìn)行跨平臺(tái)串口通信的完全指南

    Java使用jSerialComm進(jìn)行跨平臺(tái)串口通信的完全指南

    在現(xiàn)代嵌入式開發(fā)和物聯(lián)網(wǎng)應(yīng)用中,串口通信仍然是設(shè)備間數(shù)據(jù)交換的重要方式,jSerialComm作為一款專為Java設(shè)計(jì)的跨平臺(tái)串口通信庫(kù),為開發(fā)者提供了簡(jiǎn)單高效的解決方案,下面小編就和大家詳細(xì)講講具體實(shí)現(xiàn)方法吧
    2025-12-12

最新評(píng)論

鹰潭市| SHOW| 岳普湖县| 陇川县| 石林| 孝感市| 连江县| 白银市| 陇南市| 华蓥市| 沭阳县| 赤壁市| 佛山市| 宣化县| 绥滨县| 阿鲁科尔沁旗| 锦屏县| 黑河市| 海林市| 清水河县| 开平市| 呼玛县| 镇康县| 晋州市| 阳西县| 阿拉善右旗| 封丘县| 旅游| 老河口市| 青浦区| 周口市| 宁安市| 昌乐县| 兴安盟| 浙江省| 博罗县| 正定县| 浦江县| 衡阳市| 兴义市| 同心县|