如何在SpringMVC中获取request对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SpringMVC中获取request对象相关的知识,希望对你有一定的参考价值。

1.最简单的方式(注解法)
@Autowired
private HttpServletRequest request;

2.最麻烦的方法
a. 在web.xml中配置一个监听
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
b.之后在程序里可以用
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();

3.最直接的方法
public String hello(HttpServletRequest request,HttpServletResponse response)
参考技术A springMVC获取request很简单,直接在方法入参中使用HttpServletRequest request参数就可以了 参考技术B 从容器RequestContextHolder中获取,spring中很多都是通过各种容器获取,如果用springsecurity的话,登录信息会放置到安全容器中

SpringMVC从Request域中获取数据

SpringMVC从Request域中获取数据的三种方式

SpringMVC环境自行搭建,

约定存在如下目录和文件:/WEB-INF/pages/success.jsp

方式一:传入Model对象

前端界面

<a href="$pageContext.request.ContextPath/项目名/getRequestValue">获取request域中的值</a>
$value

后台代码

@RequestMapping("/getRequestValue")
public String getRequestValue(Model model)
//像request域中放置一个值“小明”,key为“value”,相当于request.setAttribute("value","小明")
model.addAttribute("value","小明");
return "success";

方式二:使用ModelAndView对象,两种写法

写法一

前端界面

<a href="$pageContext.request.ContextPath/项目名/getRequestValueMV">获取request域中的值</a>
$value

后台代码

@RequestMapping("/getRequestValueMV")
//所谓ModelAndView其实就是这个对象既可以作为模型设置值又可以作为视图返回
//向request域中添加属性,处理器中的参数是SpringMVC三大组件中的适配器传入的
public ModelAndView getRequestValueMV(ModelAndView modelAndView) modelAndView.addObject("value","小明"); modelAndView.setViewName("success"); return modelAndView;

写法二

前端界面

<a href="$pageContext.request.ContextPath/项目名/getRequestValueMV">获取request域中的值</a>
$value

后台代码

@RequestMapping("/getRequestValueMV")
//所谓ModelAndView其实就是这个对象既可以作为模型设置值又可以作为视图返回
//向request域中添加属性
public ModelAndView getRequestValueMV()
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("value","小明");
modelAndView.setViewName("success");
return modelAndView;

方式三:使用原生Servlet

前端界面

<a href="$pageContext.request.ContextPath/项目名/getRequestValueCommon">获取request域中的值</a>
$value

后台代码

@RequestMapping("/getRequestValueCommon")
public ModelAndView getRequestValueCommon(HttpServletRequest request,HttpServletResponse response)
request.setAttribute("value","小明");
return "success";

 

以上是关于如何在SpringMVC中获取request对象的主要内容,如果未能解决你的问题,请参考以下文章

在springMVC的controller中获取request,response对象的一个方法

springMVC中获取request和response对象的几种方式(RequestContextHolder)

springmvc中获取request对象,加载biz(service)的方法

老王读SpringMVC-3根据 url 是如何找到 controller method 的?

Spring mvc HandlerInterceptor 怎样获取 rest 参数值

SpringMVC从Request域中获取数据