1. 访问和添加request/session/application属性
如果只是往request/session/application中设置属性,可以用下面的方式
jsp页面上获取方式
2. struts2中如何获取httpServletRequest/HttpSession/ServletContext/HttpServletResponse对象
方法一,通过ServletActionContext类获取:(推介使用)
方法二,实现指定接口,由struts框架注入:
- ActionContext
ctx = ActionContext.getContext(); - ctx.getApplication().put("app",
"应用范围");//往ServletContext里放入app - ctx.getSession().put("ses",
"session范围");//往session里放入ses - ctx.put("req",
"request范围");//往request里放入req - ctx.put("names",
Arrays.asList("老张", "老黎", "老方")); -
方法一,通过ServletActionContext类获取:(推介使用)
-
public String rsa() throws Exception{ -
HttpServletRequest request = ServletActionContext.getRequest(); -
ServletContext servletContext = ServletActionContext.getServletContext(); -
request.setAttribute("req", "请求范围属性"); -
request.getSession().setAttribute("ses", "会话范围属性"); -
servletContext.setAttribute("app", "应用范围属性"); -
HttpServletResponse response = ServletActionContext.getResponse(); -
return "message"; - }
- import
com.opensymphony.xwork2.ActionContext; - public
class HelloWorldAction2 implements ServletContextAware,ServletRequestAware,ServletResponseAware{ -
private HttpServletRequest request ; -
private HttpServletResponse response ; -
private ServletContext servletContext ; -
public void setServletContext(ServletContext context) { -
//context对象不是应用程序传进去的,而是由struts框架自动注入的 -
this.servletContext = context ; -
} -
public void setServletRequest(HttpServletRequest request) { -
this.request = request ; -
} -
public void setServletResponse(HttpServletResponse response) { -
this.response = response ; -
} - }