读书人

struts2怎么获取Request-Session-Serv

发布时间: 2012-10-20 14:12:48 作者: rapoo

struts2如何获取Request-Session-ServletContext-Response
1. 访问和添加request/session/application属性
如果只是往request/session/application中设置属性,可以用下面的方式

  ActionContext ctx = ActionContext.getContext();ctx.getApplication().put("app", "应用范围");//往ServletContext里放入appctx.getSession().put("ses", "session范围");//往session里放入sesctx.put("req", "request范围");//往request里放入reqctx.put("names", Arrays.asList("老张", "老黎", "老方"));   
jsp页面上获取方式
 ${applicationScope.app}<br>    ${sessionScope.ses}<br>    ${requestScope.req}<br>
2. struts2中如何获取httpServletRequest/HttpSession/ServletContext/HttpServletResponse对象
方法一,通过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";}
方法二,实现指定接口,由struts框架注入:
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 ;}}

读书人网 >软件架构设计

热点推荐