struts2不能直接访问到servletAPI,但是它对其进行了封装,下面是action或jsp访问的代码
public String scope() throws Exception{ ActionContext ctx=ActionContext.getContext(); ctx.getApplication().put("app","应用范围");//往servletContext放入app ctx.getSession().put("ses","session范围");往servletSession放入Session范围 ctx.put("req","request范围");//往request放入 return "scope"; } JSP: <body> ${applicationScope.app}<br/> ${sessionScope.ses}<br/> ${requestScope.req}<br/> </body>
如何获取作用域对象? 方法一:通过ServletActionContext类直接获取 public String rsa() throws Exception{ HttpServletRequest request=ServletActionContext.getRequest(); ServletContext servletContext=ServletActionContext.getServletContext(); request.getSession(); HttpServletResponse response=ServletActionContext.getRequest(); return "scope"; }
方法二:实现指定接口,由struts2框架运行时注入: public class HelloWorldAction implements ServletRequestAware,ServletResponseAware, ServletContextAware{ private HttpServletRequest request; private HttpServletResponse response; private HttpServletContext context; public void setServletRequest(HttpServletRequest req){ this.request=req } public void setServletResponse(HttpServletResponse res){ this.request=res } public void setServletContext(HttpServletContext con){ this.request=con } }