Java中的HttpServletRequest接口詳細(xì)解讀
HttpServletRequest接口是Servlet規(guī)范的一員,需要的朋友可以參考下
HttpServletRequest接口
- 是一個(gè)接口,全限定名稱(chēng)為Jakarta.Serclet.http.HttpServletRequest
- HttpServletRequest接口是Servlet規(guī)范的一員
- HttpServletRequst接口的父接口是:ServletRequest
- HttpServletRequest的實(shí)現(xiàn)類(lèi)是Tomcat實(shí)現(xiàn)的
- HttpServletRequest對(duì)象是Tomcat創(chuàng)建的
- HttpServletRequest對(duì)象中包裝的信息
- HttpServletRequest封裝了Http的請(qǐng)求協(xié)議
- Tomcat將用戶(hù)請(qǐng)求的Http協(xié)議中的信息解析出來(lái)封裝到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采用方法
- 獲取前端用戶(hù)提交的數(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è)元素(最常用) //以上方法與獲取用戶(hù)提交的數(shù)據(jù)有關(guān)系
- request對(duì)象也叫做請(qǐng)求域?qū)ο?ul>
- 應(yīng)用域?qū)ο骃ervletContext(Servlet上下文對(duì)象)
- 往應(yīng)用域中綁定數(shù)據(jù)的情況
- 所有用戶(hù)共享的屬于
- 共享的數(shù)據(jù)量小
- 這個(gè)共享的數(shù)據(jù)很少的修改操作
- 使用應(yīng)用域?qū)ο罂梢源蟠筇岣叱绦驁?zhí)行效率
- 實(shí)際上往應(yīng)用域添加數(shù)據(jù)就是將數(shù)據(jù)放進(jìn)緩存當(dāng)中,用戶(hù)訪問(wèn)時(shí)直接在緩存中讀取。減少I(mǎi)O操作,大大提升系統(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ù)移除 //以上操作類(lèi)似于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í)候,路徑以"/"開(kāi)始,不加項(xiàng)目名
- HttpServletRequest接口常用方法
//獲取客戶(hù)端的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)求的亂碼問(wèn)題) 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)文章希望大家以后多多支持腳本之家!
- Java如何基于okhttp請(qǐng)求SSE接口流式返回詳解
- Java請(qǐng)求Http接口OkHttp超詳細(xì)講解(附帶工具類(lèi))
- java+Okhttp3調(diào)用接口的實(shí)例
- Java調(diào)用HTTPS接口實(shí)現(xiàn)繞過(guò)SSL認(rèn)證
- Java調(diào)用第三方http接口的四種方式總結(jié)
- Java發(fā)送http請(qǐng)求調(diào)用第三方接口獲取token方式
- Java調(diào)用第三方http接口的常用方式總結(jié)
- Java實(shí)現(xiàn)調(diào)用對(duì)方http接口得到返回?cái)?shù)據(jù)
- Java 調(diào)用 HTTP 接口的 7 種方式示例代碼(全網(wǎng)最全指南)
相關(guān)文章
Java?HttpURLConnection使用方法與實(shí)例演示分析
這篇文章主要介紹了Java?HttpURLConnection使用方法與實(shí)例演示,HttpURLConnection一個(gè)抽象類(lèi)是標(biāo)準(zhǔn)的JAVA接口,該類(lèi)位于java.net包中,它提供了基本的URL請(qǐng)求,響應(yīng)等功能,下面我們來(lái)深入看看2023-10-10springboot對(duì)象為null的屬性在json中不顯示的解決
這篇文章主要介紹了springboot對(duì)象為null的屬性在json中不顯示的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09java中建立0-10m的消息(字符串)實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇java中建立0-10m的消息(字符串)實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05SpringBoot2.x實(shí)現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴
這篇文章主要介紹了SpringBoot2.x實(shí)現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Spring Boot 配置和使用多線(xiàn)程池的實(shí)現(xiàn)
這篇文章主要介紹了Spring Boot 配置和使用多線(xiàn)程池的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06淺析java中ArrayList與Vector的區(qū)別以及HashMap與Hashtable的區(qū)別
以下是對(duì)java中ArrayList與Vector的區(qū)別以及HashMap與Hashtable的區(qū)別進(jìn)行了詳細(xì)的解析。需要的朋友可以過(guò)來(lái)參考下2013-08-08