在JavaWeb项目开发中,需要经常操作HttpServletRequest、HttpServletResponse和HttpSession对象。下面将介绍几种SpringMVC如何获取request、response和session对象的方法。
方法一:
使用@Autowired注解完成HttpServletRequest、HttpServletResponse和HttpSession对象的自动装配。
package com.pjb.ssm.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* 公共控制器
*
* @author pan_junbiao
**/
@Controller
public class BaseController
{
@Autowired
public HttpServletRequest request;
@Autowired
public HttpServletResponse response;
@Autowired
public HttpSession session;
}
方法二:
SpringMVC有一些默认支持的类型,这些类型可以直接在Controller类的方法中定义,在参数绑定的过程中遇到该种类型就直接进行绑定。HttpServletRequest可以通过request对象获取请求信息;HttpServletResponse可以通过response对象处理响应信息;HttpSession可以通过session对象得到session中存放对象。
/**
* 获取信息
*
* @author pan_junbiao
*/
@RequestMapping(value = "/getInfo")
public void getInfo(HttpServletRequest request, HttpServletResponse response, HttpSession session)
{
//忽略其他代码...
}
方法三:
通过ServletRequestAttributes对象。
/**
* 获取信息
*
* @author pan_junbiao
*/
@RequestMapping(value = "/getInfo")
public void getInfo()
{
//获取ServletRequestAttributes对象
ServletRequestAttributes servletRequestAttributes = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());
//获取HttpServletRequest对象
HttpServletRequest request = servletRequestAttributes.getRequest();
//获取HttpServletResponse对象
HttpServletResponse response = servletRequestAttributes.getResponse();
//获取HttpSession对象
HttpSession session = servletRequestAttributes.getRequest().getSession();
//忽略其他代码...
}