Spring實(shí)現(xiàn)在非controller中獲取request對(duì)象
在非controller中獲取request對(duì)象
在Controller中,我們可以直接在參數(shù)中加上HttpServletRequest request,springMVC就會(huì)自動(dòng)將request綁定進(jìn)參數(shù),而如果我們想在其他地方獲取request就要如下這么做了。
首先在web.xml中添加一個(gè)監(jiān)聽器
針對(duì)request級(jí)別的,要和ContextLoaderListener區(qū)分開
<listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener>
然后在程序中就可以使用
如下的代碼來獲取request對(duì)象了
HttpServletRequest request=((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
其實(shí)背后的原理就是將這個(gè)request對(duì)象存在ThreadLocal線程變量里面。
非controller層獲取response和request對(duì)象
如下所示
ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletResponse response = attrs.getResponse(); HttpServletRequest request = attrs.getRequest();
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis實(shí)現(xiàn)SQL映射的兩種方法(xml文件形式和注解形式)
這篇文章主要介紹了Mybatis實(shí)現(xiàn)SQL映射的兩種方法(xml文件形式和注解形式),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Java并發(fā)容器相關(guān)知識(shí)總結(jié)
今天給大家?guī)淼奈恼率荍ava并發(fā)容器的相關(guān)知識(shí),文中有非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)Java并發(fā)容器的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06
Java高性能實(shí)體類轉(zhuǎn)換工具M(jìn)apStruct的使用教程詳解
MapStruct 是一個(gè)代碼生成器,它基于約定優(yōu)于配置的方法,極大地簡化了 Java bean 類型之間的映射實(shí)現(xiàn),本文主要介紹了MapStruct的具體使用以及如何進(jìn)行實(shí)體類轉(zhuǎn)換,感興趣的可以了解下2024-03-03
Spring Shell 命令行實(shí)現(xiàn)交互式Shell應(yīng)用開發(fā)
本文主要介紹了Spring Shell 命令行實(shí)現(xiàn)交互式Shell應(yīng)用開發(fā),能夠幫助開發(fā)者快速構(gòu)建功能豐富的命令行應(yīng)用程序,具有一定的參考價(jià)值,感興趣的可以了解一下2025-04-04
Spring類型轉(zhuǎn)換 ConversionSerivce Convertor解析
這篇文章主要介紹了Spring類型轉(zhuǎn)換 ConversionSerivce Convertor的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11

