方式一:使用ServletActionContext工具類
方式二:繼承接口注入數據
1> 使用ServletActionContext工具類
package xyz.kuoa.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 com.opensymphony.xwork2.ActionSupport;
public class Demo1Action extends ActionSupport {
private static final long serialVersionUID = 1L;
public String execute(){
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);
/*org.apache.struts2.dispatcher.StrutsRequestWrapper@479bedde
org.apache.catalina.connector.ResponseFacade@7e41b51a
org.apache.catalina.core.ApplicationContextFacade@7a4092b4
org.apache.catalina.session.StandardSessionFacade@72eed08b*/
return "success";
}
}
2> 繼承接口注入數據
package xyz.kuoa.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.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionSupport;
public class Demo2Action extends ActionSupport implements ServletRequestAware,ServletResponseAware,ServletContextAware{
private static final long serialVersionUID = 1L;
HttpServletRequest request;
HttpServletResponse response;
ServletContext application;
public String execute(){
HttpSession session = request.getSession();
System.out.println(request);
System.out.println(response);
System.out.println(application);
System.out.println(session);
/*org.apache.struts2.dispatcher.StrutsRequestWrapper@1d95277e
org.apache.catalina.connector.ResponseFacade@7e41b51a
org.apache.catalina.core.ApplicationContextFacade@456935cc
org.apache.catalina.session.StandardSessionFacade@5186b46e*/
return "success";
}
@Override
public void setServletContext(ServletContext context) {
this.application = context;
}
@Override
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
}