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

|--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的map
Map<String,Object> sessi> on=context.getSession();          //拿到session的map
Map<String,Object> application=context.getApplication();     //拿到servletContext的map

request.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;
        }





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值