第一种方式:使用ServletActionContext类
package com.qianfeng.web.action;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionSupport;
/**
* 1:使用ServletActionContext获取,建议使用这种
*/
public class TestAction extends ActionSupport {
public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
ServletContext application = ServletActionContext.getServletContext();
HttpSession session = request.getSession();
System.out.println(request);
System.out.println(response);
System.out.println(application);
System.out.println(session);
return null;
}
}
输出结果:
第二种方式:使用实现接口的方式
package com.qianfeng.web.action;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionSupport;
/**
* 1:使用ServletActionContext获取,建议使用这种
* 2:使用注入的方式,拦截器实现注入,servletConfig:
* 1:定义成员变量
* 2:实现接口
* 3:实现接口中的方法
* @author Administrator
*
*/
public class TestAction extends ActionSupport implements ServletRequestAware,ServletResponseAware,ServletContextAware{
//第二种使用注入的方式
private HttpServletRequest request;
private HttpServletResponse response;
private ServletContext application;
public String execute() throws Exception {
HttpSession session = request.getSession();
System.out.println(request);
System.out.println(response);
System.out.println(application);
System.out.println(session);
return null;
}
@Override
public void setServletContext(ServletContext application) {
this.application=application;
}
@Override
public void setServletResponse(HttpServletResponse response) {
this.response=response;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request=request;
};
}
运行结果: