您的位置:首页 > 其它

Action直接访问Servlet

2016-03-02 17:35 267 查看

Struts2中直接访问Servlet有IoC和非IoC两种方式

IoC访问Servlet时Action实现类必须实现一些接口;

非IoC访问Servlet时可使用Struts2提供的辅助类来访问

Action直接访问Servlet方式中提供的辅助类是ServletActionContext

1.IoC方式 在Action中实现以下接口

ServletRequestAware 实现该接口的Action可以直接访问request对象,该接口中提供有void setServletRequest(HttpServletRequest request)

SevletResponseAware 实现该接口的Action可以直接访问response对象,该接口中提供有void setServletResponse(HttpServletResponse response)

SessionAware 实现该接口的Action可以直接访问session独享,该接口中提供有void setSession(Map map)方法

public class IoCAction extends ActionSupport implements ServletRequestAware{

private String userName;
private String password;
get,set

private HttpServletRequest request;
//必须实现该方法,该方法是接口中的方法
public void setServletrequest(HttpServletRequest hsr){
request=hsr;
}
public String execute() throws Exception
{
HttpSession session=request.getSession();
session.setAttribute("userName", this.userName);
}
}


2.非IoC方式 Struts2提供ServletActionContext类帮助获得Servlet

static getRequest() 获取web应用程序的request对象

static getResponse() 获取web应用程序的response对象

public class NoIoCAction extends ActionSupport{
private String userName;
private String password;
get,set

public String execute() throws Exception
{
//调用ServletActionContext的getRequest()方法获取request对象
HttpServletRequest request=ServletActionContext.getRequest();
//调用request对象的getSession()方法获取session对象
HttpSession session=request.getSession();
session.setAttribute("userName", this.userName);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: