struts2中耦合访问servlet- API有三种,推荐使用第二种。当然,尽量用解耦合的方式访问,解耦合方式访问内容在上一篇文章中有解释,需要者请查看。
方法一:.[一般推荐使用](只能获得request,而response则得不到)
Struts2提供了一个ActionContext类,Struts2中的Action可以通过它进行访问。
其方法有:get(),getApplication(),getContext(),getParameters(),getSession(),setApplication(),setSession()
public class LoginAction implements Action
{
}
方法二:强烈推荐使用
Struts2还提供了一个ServletActionContext,其静态方法有:getPageContext(),getRequest(),getResponse(),getServletContext()
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
request.getSession().setAttribute("username","admin");
request.setAttribute("password", "1234");
方法三:[不推荐](麻烦,与servlet API 耦合大).
虽然Struts2提供了ActionContext来访问Servlet API,但这种访问毕竟不能直接获得Servlet API,为了在Action中直接访问Servlet API,Struts2还提供了一下接口:ServletContextAware,ServletRequestAware,ServletResponseAware
下面以ServletResponseAware为例。
//实现ServletResponseAware
public class LoginAction implements Action , ServletResponseAware
{
//需要访问的HttpServletResponse对象
//实现ServletResponseAware接口必须实现的方法
}