spring、struts获取request

原文 http://blog.csdn.net/z295304557/article/details/24771281

1.通过注解获取(很简单,推荐):

public class Hello {
@Autowired  
HttpServletRequest request; //这里可以获取到request
}

2.在web.xml中配置一个监听:

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

java代码:

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

3.直接在参数中传递(此方法不好用,不建议使用):

public String hello(HttpServletRequest request)

4.如果有Struts:

HttpServletRequest request = ServletActionContext.getRequest(); 

我自己写了个BaseController控制器类,只要继承这个类的控制器都可以直接获取request和获取到参数

BaseController.java

package com.pzhu.jams.cmt.controller;

import java.io.Serializable;
import java.util.Enumeration;
import java.util.HashMap;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.springframework.web.bind.annotation.ModelAttribute;

public class BaseController implements Serializable {
	private HashMap<Object,Object> params = new HashMap();
	protected Logger logger = Logger.getLogger(BaseController.class);
	protected HttpServletRequest request;  
    protected HttpServletResponse response;
    protected HttpSession session;  
      
    @ModelAttribute  
    public void setReqAndRes(HttpServletRequest request, HttpServletResponse response) throws Exception{  
        this.request = request;  
        this.response = response;  
        this.session = request.getSession();  
    }  
	public HashMap getParams() {
		params.clear();
		Enumeration names = request.getParameterNames();
		if(names != null){
			while(names.hasMoreElements()){
				String name = (String) names.nextElement();
				String value = request.getParameter(name);
				params.put(name, value);
			}
		}
		HashMap ps = new HashMap<Object,Object>(params);
		params.clear();
		return ps;
	}
}

相当于是采用的第三种获取request的方法

原文地址:https://www.cnblogs.com/jamsbwo/p/5345328.html