好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

在非controller中获取request对象

在Controller中,我们可以直接在参数中加上HttpServletRequest request,springMVC就会自动将request绑定进参数,而如果我们想在其他地方获取request就要如下这么做了。

首先在web.xml中添加一个监听器

针对request级别的,要和ContextLoaderListener区分开

?

1

2

3

< listener >

  < listener-class >org.springframework.web.context.request.RequestContextListener</ listener-class >

</ listener >

然后在程序中就可以使用

如下的代码来获取request对象了

?

1

HttpServletRequest request=((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();

其实背后的原理就是将这个request对象存在ThreadLocal线程变量里面。

非controller层获取response和request对象

如下所示

?

1

2

3

ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();

HttpServletResponse response = attrs.getResponse();

HttpServletRequest request = attrs.getRequest();

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

原文链接:https://blog.csdn.net/weixin_41751625/article/details/79633649

查看更多关于Spring实现在非controller中获取request对象的详细内容...

  阅读:17次