Struts2--与Servlet API

来源:互联网 发布:瓜达尔港 知乎 编辑:程序博客网 时间:2024/05/16 08:39

struts2有4种方式去获取servletAPI,分别介绍如下:
1 通过解耦的方式,在需要的位置执行如下代码即可:

Map<String,Object> request=(Map)ActionContext.getContext().get("user");            //获取application            Map<String,Object> appliaction=ActionContext.getContext().getApplication();            //获取parameters            Map<String,Object> parameters=ActionContext.getContext().getParameters();

2 与第一种方式类似,耦合性较低,在需要的位置执行即可。

HttpServletRequest request=(HttpServletRequest)ActionContext.getContext().get(StrutsStatics.HTTP_REQUEST);

3 实现ServletRequestAware接口中的setServletRequest方法来在当前类中为一个HttpServletRequest 引用设置值、
如下:

public class LoginAction2 implements ServletRequestAware{    public String name;    public String pwd;    HttpServletRequest request;    public String execute(){        if("siggy".equals(name)&&"1111".equals(pwd)){            request.getSession().setAttribute("user", name);            System.out.println("name=="+request.getParameter("name"));            return "success";        }else{            return "login";        }    }    public String logout(){        ActionContext.getContext().getSession().remove(name);        System.out.println("退出");        return "success";    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPwd() {        return pwd;    }    public void setPwd(String pwd) {        this.pwd = pwd;    }    @Override    public void setServletRequest(HttpServletRequest request) {        // TODO Auto-generated method stub        this.request=request;    }}

4 使用ServletActionContext

HttpServletRequest request=ServletActionContext.getRequest();