Struts数据处理(获取request对象)

来源:互联网 发布:苹果远程桌面连接软件 编辑:程序博客网 时间:2024/06/05 19:52

|--ActionContext        action中的上下文对象

|-- ServletActionContext        (com.opensymphony.webwork.ServletActionContext),



  ServletActionContext   直接继承了ActionContext ,提供直接与Servlet相关对象访问的功能

从ServletActionContext里取得Servlet的相关对象


取得HttpServletRequest对象: 

  HttpServletRequest request = ServletActionContext. getRequest();

取得HttpSession对象:             
  HttpSession session = ServletActionContext. getRequest().getSession();


公共接口类HttpServletRequest继承自ServletRequest类,每一次客户端发出的请求都会封装成一个HttpServletRequest对象,包括地址,请求的参数,提交的数据,Ip地址等

方法一,直接通过servlet API直接获取

HttpServletRequest request=ServletActionContext.getRequest(); HttpSession session=request.getSession();ServletContext application=ServletActionContext.getServletContext(); //获取servlet的上下文对象request.setAttribute("request_data", "request_data");session.setAttribute("session_data", "session_data");application.setAttribute("application_data", "application_data");


方法二:通过ActionContext

ActionContext context=ActionContext.getContext();   //ActionContext对象就是一个map容器Map<String,Object request=context.getContextMap();    //拿到request的mapMap<String,Object> sessi> on=context.getSession();          //拿到session的mapMap<String,Object> application=context.getApplication();     //拿到servletContext的maprequest.put("request_data", "request_data_actionContext");request.put("session_data", "session_data_actionContext");request.put("application_data", "application_data_actionContext");

方法三:通过实现RequestAware , SessionAware ,ApplicationAware接口

重写接口中的方法:

public class DataAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{         private Map<String,Object> request;         private Map<String,Object> session;         private Map<String,Object> application;        public void setApplication(Map<String, Object> application) {           this.application=application;}public void setSession(Map<String, Object> session) { this.session=session;}public void setRequest(Map<String, Object> request) { this.request=request;}            @Override       public String execute() throws Exception {            request.put("request_data", "request_data_actionAware");        session.put("session_data", "session_data_sessionAware");        application.put("application_data", "_data_applicationAware");          return SUCCESS;        }