Structs2为了避免你直接访问servlet API ,它对request/session/application 这三个范围进行了封装,可以通过ActionContext对象获取
public String execute() throws UnsupportedEncodingException
{
ActionContext ctx = ActionContext.getContext();
ctx.getApplication().put("app", "应用范围"); //往ServletContext里放入app
ctx.getSession().put("ses", "session范围"); //往session里放入ses
ctx.put("req", "request范围"); //往request里放入req
return "success";
}
JSP:
<body>
${applicationScope.app}<br>
${sessionScope.ses}<br>
${requestScope.req}<br>
</body>
如果一定想要获得request/session/application对象:
可以通过ServletActionContext类直接获取:
public String execute() throws UnsupportedEncodingException
{
// ActionContext ctx = ActionContext.getContext();
// ctx.getApplication().put("app", "应用范围"); //往ServletContext里放入app
// ctx.getSession().put("ses", "session范围"); //往session里放入ses
// ctx.put("req", "request范围"); //往request里放入req
HttpServletRequest request = ServletActionContext.getRequest(); //request
ServletContext servletContext = ServletActionContext.getServletContext(); //application
request.setAttribute("req", "request请求范围属性");
servletContext.setAttribute("app", "app范围属性");
request.getSession().setAttribute("ses", "会话范围属性");;
return "success";
}
注:如果仅仅只是需要访问和添加,那么我们不需要获得对象, 用第一种即可。