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

目录
  • 在非controller中获取request对象
    • 首先在web.xml中添加一个监听器
    • 然后在程序中就可以使用
  • 非controller层获取response和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();

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

(0)

相关推荐

  • 详解Spring Controller autowired Request变量

    详解Spring Controller autowired Request变量 spring的DI大家比较熟悉了,对于依赖注入的实现也无须赘述. 那么spring的bean的默认scope为singleton,对于controller来说每次方法中均可以获得request还是比较有意思的. 对于方法参数上的request通过构建方法的参数可以获得最新的request public final Object invokeForRequest(NativeWebRequest request, Mo

  • 关于Spring MVC在Controller层中注入request的坑详解

    前言 记一次为了节省代码没有在方法体中声明HttpServletRequest,而用autowire直接注入所钻的坑 结论:给心急的人. 直接在Controller的成员变量上使用@Autowire声明HttpServletRequest,这是线程安全的! @Controller public class TestController{ @Autowire HttpServletRequest request; @RequestMapping("/") public void test

  • 详解SpringMVC Controller介绍及常用注解

    一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示.在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注

  • 如何在springMVC的controller中获取request

    这篇文章主要介绍了如何在springMVC的controller中获取request,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getReque

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

    目录 在非controller中获取request对象 首先在web.xml中添加一个监听器 然后在程序中就可以使用 非controller层获取response和request对象 如下所示 在非controller中获取request对象 在Controller中,我们可以直接在参数中加上HttpServletRequest request,springMVC就会自动将request绑定进参数,而如果我们想在其他地方获取request就要如下这么做了. 首先在web.xml中添加一个监听器

  • 如何在Spring WebFlux的任何地方获取Request对象

    1 不一样的世界 在常规的Spring Web项目中,我们要获取Request对象是非常方便的,不少库都提供了静态方法来获取.获取代码如下: ServletRequestAttributes requestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes(); // get the request HttpServletRequest request = requestAttribut

  • Symfony2实现在controller中获取url的方法

    本文实例讲述了Symfony2实现在controller中获取url的方法.分享给大家供大家参考,具体如下: // 假设当前URL地址是http://192.168.1.100/demo/web/app_dev.php/m/index $request = $this->getRequest(); // http or https 此处为http $request->getScheme(); // 192.168.1.100 $request->getHttpHost(); // htt

  • asp.net实现在非MVC中使用Razor模板引擎的方法

    本文实例讲述了asp.net实现在非MVC中使用Razor模板引擎的方法.分享给大家供大家参考.具体分析如下: 模板引擎介绍 Razor.Nvelocity.Vtemplate,Razor一般在MVC项目中使用,这里介绍在非MVC项目中的用法. 如何在非MVC中使用Razor模板引擎 借助于开源的RazorEngine,我们可以在非asp.net mvc项目中使用Razor引擎,甚至在控制台.WinForm项目中都可以使用Razor(自己开发代码生成器) 如何使用Razor 环境搭建: ① 添加

  • django框架实现模板中获取request 的各种信息示例

    本文实例讲述了django框架实现模板中获取request 的各种信息.分享给大家供大家参考,具体如下: 在做网页程序时,request,response 是少不了的,这是最基本的东西.但 django有自己的框架,在展示层,很少用到直接去取request的内容的.我以前做过java j2ee应用,有时候,经常在jsp页面用request 直接取得想要的内容.即使是用struts,也还是可以用request 去取内容的. 现在在重新用 django 重写一套程序,数据库还是用原来的,有些东西如果

  • js中获取事件对象的方法小结

    复制代码 代码如下: var evt = window.event || arguments[0]; 下面分三种添加事件的方式讨论,你也许会看到以前没有看到过的获取方式. 1,第一种添加事件的方式,直接在html的属性中写JS代码 复制代码 代码如下: <div onclick="alert(4);">Div1 Element</div> 大概这是上世纪90年代的写法,那时候直接把js代码写在网页中很普遍,也许那时候的js并不太重要,只是用来做做验证或一些花哨的

  • Spring Boot中获取request的三种方式及请求过程

    目录 一.请求过程 二.获取request的三种方式 2.1.可以封装为静态方法 2.2.controller的方法里面 2.3.直接注入 三.request常用API 3.1.request路径相关 3.2.Header相关 3.3.获取请求体 3.4.获取参数 3.5.中文乱码 3.6.转发 3.7.共享数据 四.response常用API 五.常用工具类 5.1.封装的 5.2.Hutool工具类 本篇博客主要记录request相关知识,也是开发当中经常遇到的,感兴趣的跟小编一起学习吧!

  • SpringMVC实现controller中获取session的实例代码

    平时使用springMVC,在方法中访问session中经常很自然地调用Servlet API.用起来非常直观方便,一直没有多考虑什么. 比如这样: @RequestMapping(value = "/logout") public String logout(HttpSession session) { session.removeAttribute("user"); return "/login"; } 但毕竟这样对Servlet API产生

  • Spring注解@Value在controller无法获取到值的解决

    目录 一.前言 二.properties加入到Spring容器中有两种方式 1.以注入bean的形式 2.以下面这种形式 三.将properties注册到Spring容器 1.weixin.properties内容以键值对(key = value)形式存放 2.@Value使用 5.存在问题 四.总结 一.前言 说到@Value注解,用过的应该都知道,这是Spring3的一个注解,通过@value注解的方式获取properties文件中的属性值,大大简化了我们读取配置文件的代码 想要通过@Val

随机推荐