struts2 获取request、session的方法

一,获取方式:

从Servlet容器中获取的方法
与Servlet容器无关的获取方法 
IoC方式
非Ioc方式

 

二,获取方法

  2.1 与servlet无关:

    2.1.1 非IoC模式

Java代码   收藏代码
  1. ActionContext context ;//该方法还可以取得值栈(getValueStack()),使用push(obj)往值栈中放数据  
  2. Map request ;  
  3. Map session ;  
  4. Map application ;  
  5.   
  6. //以下初始化方法要放在方法中  
  7. context = ActionContext.getContext();  
  8.   
  9. request = (Map)context.get("request");//获取request  
  10. session = context.getSession();//获取session  
  11. application = context.getApplication();//获取application  
  12.   
  13. request.put("req""request属性");  
  14. session.put("ses""session属性");  
  15. application.put("app""application属性");  
 
Xml代码   收藏代码
  1. <!--jsp中取值-->  
  2. request属性接受:<s:property value="#request.req"/>${requestScope.req}  
  3. session属性接受:<s:property value="#session.ses"/>${sessionScope.ses}  
  4. application属性接受:<s:property value="#application.app"/>${applicationScope.app}  

    2.1.2  IoC模式

Java代码   收藏代码
  1. //实现接口  
  2. public class LoginAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware  
  3.   
  4. Map request ;  
  5. Map session ;  
  6. Map application ;  
  7.   
  8. public void setRequest(Map request) {  
  9.         this.request = request;  
  10. }  
  11. public void setSession(Map session) {  
  12.     this.session = session;  
  13. }  
  14. public void setApplication(Map application) {  
  15.     this.application = application;  
  16. }      

 2.2 与servlet有关

    2.2.1 非IoC模式

Java代码   收藏代码
  1. HttpServletRequest request;  
  2. HttpSession session ;  
  3. ServletContext application;  
  4.   
  5. request = ServletActionContext.getRequest();//获取request  
  6. session = request.getSession();  
  7. application = ServletActionContext.getServletContext();//获取application  
  8.   
  9. request.setAttribute("req""request属性111");  
  10. session.setAttribute("ses""session属性111");  
  11. application.setAttribute("app""application属性111");  

    2.2.1 IoC模式

Java代码   收藏代码
  1. //实现接口  
  2. public class LoginAction extends ActionSupport implements ServletRequestAware,ServletContextAware  
  3.   
  4.   
  5. HttpServletRequest request;  
  6. ServletContext application;   
  7.   
  8.   
  9. public void setServletRequest(HttpServletRequest request) {  
  10.     this.request = request;  
  11. }  
  12. public void setServletContext(ServletContext application) {  
  13.     this.application = application;  
  14. }  
 

 

 自己用的两种方法

非IOC

package com.wondersgroup.workflow.common.action;

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

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.wondersgroup.workflow.common.model.vo.ParamVo;

@SuppressWarnings("serial")
public abstract class AbstractParamAction extends ActionSupport{
	public ActionContext actionContext = ActionContext.getContext();
	public HttpServletRequest request = (HttpServletRequest) actionContext.get(ServletActionContext.HTTP_REQUEST);
	public HttpServletResponse response = (HttpServletResponse) actionContext.get(ServletActionContext.HTTP_RESPONSE);
	public HttpSession session = request.getSession();
	//public ParamVo params;

	abstract public ParamVo getParams();
}

IOC:

package com.wonders.stpt.userMsg.action;

import java.util.Map;

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

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class AbstractParamAction extends ActionSupport implements 
SessionAware, ServletRequestAware, ServletResponseAware{
	private static final long serialVersionUID = 7620009925942346125L;   
	
	protected Map session;
    protected HttpServletRequest servletRequest;
    protected HttpServletResponse servletResponse;

	 public Map getSession()
    {
        return session;
    }

    public void setSession(Map session)
    {
        this.session = session;
    }


    public HttpServletRequest getServletRequest()
    {
        return servletRequest;
    }

    public HttpServletResponse getServletResponse()
    {
        return servletResponse;
    }

    public void setServletRequest(HttpServletRequest servletRequest)
    {
        this.servletRequest = servletRequest;
    }

    public void setServletResponse(HttpServletResponse servletResponse)
    {
        this.servletResponse = servletResponse;
    }

}


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值