如何获取 HttpServletRequest 、HttpSession、ServletContext 、HttpServletResponse:
方法一,通过ServletActionContext类直接获取:
public String rsa() throws Exception{
HttpServletRequest request = ServletActionContext.getRequest();
ServletContext servletContext = ServletActionContext.getServletContext();
request.getSession();
HttpServletResponse response = ServletActionContext.getResponse();
return "success";
}
方法二,实现指定接口,由struts运行时注入:
public class HelloWorldAction implements ServletRequestAware, ServletResponseAware,ServletContextAware{
private HttpServletRequest request;
private ServletContext servletContext;
private HttpServletResponse response;
public void setServletRequest(HttpServletRequest req){
this.request = req;
}
public void setServletContext(ServletContext context){
this.servletContext = context;
}
public void setServletResponse(HttpServletResponse response){
this.reponse = response;
}
}
方法三,由ActionContext获取
public String execute() throws Exception{
ActionContext ctx = ActionContext.getContext();
ctx.getApplication().put("app", "应用范围");
ctx.getSession().put("see", "session范围");
ctx.put("req", "request范围");
return "success";
}