在非controller中获取request对象
在Controller中,我们可以直接在参数中加上HttpServletRequest request,springMVC就会自动将request绑定进参数,而如果我们想在其他地方获取request就要如下这么做了。
首先在web.xml中添加一个监听器
针对request级别的,要和ContextLoaderListener区分开
<listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener>
然后在程序中就可以使用
如下的代码来获取request对象了
HttpServletRequest request=((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
其实背后的原理就是将这个request对象存在ThreadLocal线程变量里面。
非controller层获取response和request对象
如下所示
ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletResponse response = attrs.getResponse(); HttpServletRequest request = attrs.getRequest();
以上为个人经验,希望能给大家一个参考,也希望大家多多支持靠谱客。
最后
以上就是调皮小兔子最近收集整理的关于Spring实现在非controller中获取request对象的全部内容,更多相关Spring实现在非controller中获取request对象内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复