您的位置:首页 > 移动开发

struts2 Action获取request,session,application

2016-08-18 17:09 411 查看
a.利用工具类 ActionContext(获得Map类型的request,session等),ServletActionContext(获得封装的request,session等)
public class ScopeAction{

public String execute(){
ActionContext ac = ActionContext.getContext();
ac.getSession();
ac.getApplication();
//或者使用如下方式得到request,session
Map<String,Object> request = (Map<String,Object>)ac.get("request");
request.put("hello","hello world");
ac.get("session");
HttpServletRequest httpRequest = ServletActionContext.getRequest();
}
}

b.以Aware接口方式注入******************推荐使用框架提供一系列的Aware接口,
import java.util.Map;

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

import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.SessionAware;
import org.apache.struts2.util.ServletContextAware;

public class BaseAction implements RequestAware,SessionAware,ServletRequestAware,ServletContextAware{
    public  Map<String,Object>request;
    public Map<String,Object>session;
    public HttpServletRequest httpRequest;
    public HttpSession httpSession;
    public ServletContext application;

    public void setRequest(Map<String,Object>request){
        this.request = request;
    }
    public void setSession(Map<String,Object>session){
        this.session = session;
    }
    
    public void setServletContext(ServletContext servletContext) {
        this.application = servletContext;
    }
    
    public void setServletRequest(HttpServletRequest httpRequest) {
        this.httpRequest = httpRequest;
        this.httpSession =httpRequest.getSession();
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts2 session