在非controller获取request Spring实现在非controller中获取request对象

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

在非controller获取request Spring实现在非controller中获取request对象

虎哥和你一起学编程   2021-08-26 我要评论
想了解Spring实现在非controller中获取request对象的相关内容吗,虎哥和你一起学编程在本文为您仔细讲解在非controller获取request的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Spring对象,非controller,获取request对象,下面大家一起来学习吧。

在非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();

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们