Struts2 获取Request、Response的四种方法(摘抄)

摘抄自:https://blog.csdn.net/alan_liuyue/article/details/71123416   只为自己方便记忆!

方法(1):使用Struts2 Aware拦截器(耦合):

public class MyAction extends ActionSupport implements ServletResponseAware  
{  
    private javax.servlet.http.HttpServletResponse response;  
    // 获得HttpServletResponse对象  
    @Override  
    public void setServletResponse(HttpServletResponse response)  
    {  
        this.response = response;  
    }      
    public String execute() throws Exception  
    {      
        response.getWriter().write("实现ServletResponseAware接口");  
    }  
}  

 

方法(2):使用RequestAware拦截器(解耦):

public class FirstAction extends ActionSupport implements RequestAware {  

    private Map request;  

    private HttpServletResponse response;  

  

    public void setRequest(Map request) {  

        this.request = request;  

    }  

  

    public String execute() throws Exception {  

        java.util.Set<String> keys = request.keySet();  

        // 枚举所有的key值。实际上只有一个key:struts.valueStack  

        for (String key : keys)  

            System.out.println(key);  

        // 获得OgnlValueStack 对象  

        OgnlValueStack stack = (OgnlValueStack) request  

                .get("struts.valueStack");  

        // 获得HttpServletResponse对象  

        response = (HttpServletResponse) stack.getContext().get(  

                StrutsStatics.HTTP_RESPONSE);  

        response.getWriter().write("实现RequestAware 接口");  

    }  

}

方法(3):使用ActionContext类

ActionContext ctx = ActionContext.getContext();       

HttpServletRequest request =(HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);    

HttpServletResponse response = (HttpServletResponse)  

ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE);  

方法(4):使用ServletActionContext类

HttpServletRequest request = ServletActionContext.getRequest();  

HttpServletResponse response = ServletActionContext.getResponse(); 

猜你喜欢

转载自www.cnblogs.com/MonkeyJava/p/10810321.html
今日推荐