SpringMVC获取request、response和session对象

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

    //忽略其他代码...
}
发布了354 篇原创文章 · 获赞 208 · 访问量 165万+

猜你喜欢

转载自blog.csdn.net/pan_junbiao/article/details/104171424