Struts2 ————————>>>Action访问ServletAPI
很重要的一点,SSH的项目里Struts2是核心;有JSP的地方,Servlet是核心!
所以初学者使用SSH + jsp进行网页开发,怎么使用Action访问Servlet API就是问题的核心!
为了方便理解,我们就把Servlet想象成一个 jsp 对象!
JSP的内置对象有哪些?
request、response、session、application、out、pageContext、config、page、exception
1-通过ActionContext类访问(最解耦的方式)
ActionContext是Action执行的上下文对象,它里面包含了Action执行的所有对象。
在Action类里面这样写:
public class TestAction extends ActionSupport{
public String execute() throws Exception{
ActionContext context =ActionContext.getContext();
context.put(“key” , “value”);
context.getSession().put(“key” , “value”);
context.getApplication().put(“key” ,“value”);
return SUCCESS;
}
}
2-通过特定接口
比如下面是我的Action类
实现了指定的接口 ,会重载具体方法,获得具体实例;
例1:
public class TestAction extends ActionSupport implements ServletRequestAware,ServletResponseAware,SessionAware{
HttpServletRequest request;
HttpServletResponse response;,
Map<Sring,Object> session = new HashMap<String,Object>();
public void setServletRequest(HttpServletRequest request){
this.request = request;
}
public void setServletResponse(HttpServletResponse response){
this.response = response;
}
public void setSession(Map<Strng,Object> session){
this.session = session;
}
}
3-通过ServletActionContext静态类
public class TestAction extends ActionSupport{
public String execute() throws Exception{
ServletActionContext.getRequest().SetAttribute(“key” , “value”);
return SUCCESS;
}
}
我所知道的就这三种,为了代码统一,避免选择。直接使用ActionContext最好!