耦合的方式获取web资源的途径有两种:
1 使用ServletActionContext
2.实现ServletXxxAware接口
通过耦合方式获取web资源,可以只用很多原生API而不局限于,非耦合只能获得Map集合。
第一种方法:
package com.hcx.action;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
public class TestServletActionContextAction {
public String execute(){
/**
* ServletActionContext:可以从中获取到当前Action对象需要的一切Servlet相关API
* 常用的方法:获取HttpServletRequest
*/
HttpServletRequest request= ServletActionContext.getRequest();
HttpSession session = request.getSession();
ServletContext setvletContext = ServletActionContext.getServletContext();
System.out.println("execute...");
return "success";
}
}
package com.hcx.action;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.util.ServletContextAware;
/**
* 通过实现ServletXxxAware接口的方法可以由Struts2注入
* 需要的Servlet 相关的对象
* @author hcx
*
*/
public class TestServleyAwareAction implements ServletRequestAware ,ServletContextAware{
public void setServletRequest(HttpServletRequest arg0) {
arg0.getSession();
System.out.println(arg0);
}
public void setServletContext(ServletContext arg0) {
System.out.println(arg0);
}
public String execute(){
return "success";
}
}