- ServletActionContext.getRequest().getSession():HttpSession javax.servlet.http.HttpServletRequest.getSession();
ActionContext.getContext().getSession():Map com.opensymphony.xwork2.ActionContext.getSession() - ActionContext(com.opensymphony.xwork.ActionContext)是Action执行时的上下文,上下文可以看作是一个容器(其实我们这里的容器就是一个Map而已),它存放的是Action在执行时需要用到的对象. ,是线程安全的;
ServletActionContext(com.opensymphony.webwork. ServletActionContext),这个类直接继承了我们上面介绍的ActionContext,它提供了直接与Servlet相关对象访问的功能;
ServletActionContext和ActionContext有着一些重复的功能,在我们的Action中,该如何去抉择呢?
我们遵循的原则是:如果ActionContext能够实现我们的功能,那最好就不要使用ServletActionContext,让我们的Action尽量不要直接去访问Servlet的相关对象. - ServletActionContext.getRequest().getSession().setAttribute("clist", categoryService.findAll());
ActionContext.getContext().getSession().put("clist", categoryService.findAll());
前者是JSP规范的内容,第一句是:由这个request去取出和这个request对应的session对象,如果有,会返回缓存的那个session对象,否则会第一次创建并缓存这个session对象。后者是Structs等框架提供,结果在这里一样,获得session。在jsp中获取的时候都一样:使用OGNL表达式:#session.clist
request.getsession()和ActionContext.getContext().getSession()的区别
最新推荐文章于 2024-06-29 12:43:15 发布