好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Struts2访问session的两种方法.doc

19页
  • 卖家[上传人]:宝路
  • 文档编号:5702867
  • 上传时间:2017-09-07
  • 文档格式:DOC
  • 文档大小:126KB
  • / 19 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • struts2访问 session 的两种方法央邦0首付,低押金先就业后付款[上海央邦]学一送一,超值!50000年薪起,顶级4G 开发! 【安博亚威】CCIE 考试通过率第一!Windows 高级工程师的培训地java 培训到达内,行业领先品牌 中国 IT 实验室收集整理 佚名 2012-8-21 10:37:46 保存本文 推荐给好友 收藏本页欢迎进入 Java 社区论坛,与200万技术人员互动交流 >>进入Struts2 的 Action 中若希望访问 Session 对象,可采用两种方式:1、从 ActionContext 中获取;2、实现 SessionAware 接口1、从 ActionContext 中获取:import java.util.Map;import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport;public class SessionTestAction extends ActionSupport {public String execute() {ActionContext actionContext = ActionContext.getContext() ;Map session = actionContext.getSession() ;session.put("USER_NAME", "Test User") ;return SUCCESS;}}import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class SessionTestAction extends ActionSupport { public String execute() { ActionContext actionContext = ActionContext.getContext() ; Map session = actionContext.getSession() ; session.put("USER_NAME", "Test User") ; return SUCCESS; } }2、实现 SessionAware 接口: [java] view plaincopyprint?import java.util.Map;import org.apache.struts2.interceptor.SessionAware;import com.opensymphony.xwork2.ActionSupport;public class SessionTest1Action extends ActionSupport implements SessionAware {private Map session;public void setSession(Map session) {this.session = session;}public String execute() {this.session.put("USER_NAME", "Test User 1") ;return SUCCESS;} }import java.util.Map; import org.apache.struts2.interceptor.SessionAware; import com.opensymphony.xwork2.ActionSupport; public class SessionTest1Action extends ActionSupport implements SessionAware { private Map session; public void setSession(Map session) { this.session = session; } public String execute() { this.session.put("USER_NAME", "Test User 1") ; return SUCCESS; } }进一步阅读 Struts2.1.8.1源码,SessionAware 接口的实现方式如下:struts-default.xml 配置:……… …… … … … 打开 ServletConfigInterceptor.java 源码:public String intercept(ActionInvocation invocation) throws Exception {final Object action = invocation.getAction() ;final ActionContext context = invocation.getInvocationContext() ;…if (action instanceof SessionAware) {((SessionAware) action) 。

      setSession(context.getSession() ) ;} …return invocation.invoke() ;}public String intercept(ActionInvocation invocation) throws Exception { final Object action = invocation.getAction() ; final ActionContext context = invocation.getInvocationContext() ; … if (action instanceof SessionAware) { ((SessionAware) action) setSession(context.getSession() ) ; } … return invocation.invoke() ; }即在拦截器处理过程中发现目标 Action 实现了 SessionAware 接口,便会调用 Action 中已经实现的 setSession(…) 方法,将 ActionContext 中包装的 Session 注入目标 Action 中。

      目标 Action 也就可以进一步对 Session 进行操作了Struts2笔记 – Struts2中访问 Web 元素的3中方法本文由 arthinking 发表于806 天前 ⁄ J2EE ⁄ 暂无评论 ⁄ 被围观 3,422 views+1、通过 RequestAware,SessionAware,ApplicationAware 获取:在 Struts2中不能直接访问 Request,Session,Application 元素,但是可以使用 Struts2中提供的RequestAware,SessionAware,ApplicationAware在这里要分别为三个对象提供 setter 方法,以便让 struts 自动执行,使用 IoC(控制反转)进行赋值下面的 LoginAction 使用 ModelDriven 获取 User,放入 Session 中,并在 request 和 application 中分别放入“test1”和“test2” LoginAction:public class LoginAction extends ActionSupport implements ModelDriven,RequestAware,SessionAware, ApplicationAware {private Map request;private Map session;private Map application;private User user = new User();public void setSession(Map session) {this.session = session;}public void setRequest(Map request) {this.request = request;}public void setApplication(Map application) {this.application = application; }public void setUserService(UserServiceImpl userService) {this.userService = userService;}public String execute() {session.put("user", userRe);request.put("req", "test1");application.put("app", "test2");return "result";}}在页面中读取保存的数据可以用 HttpServletRequest,HttpSession,ServletContext 等直接访问,也可以使用 Struts 标签通过Stack Context 访问。

      在页面中可以按照以下方式读取保存的数据:" />2、通过 ActionContext 获取 Map 类型的元素:private Map request;private Map session;private Map application;//可以在构造方法中取值public LoginAction1() {request = (Map)ActionContext.getContext().get("request");session = ActionContext.getContext().getSession();application = ActionContext.getContext().getApplication();}public String execute() {request.put("r1", "r1");session.put("s1", "s1"); application.put("a1", "a1");return SUCCESS; }3、通过 ServletActionContext 获取原始的 web 元素类型:private HttpServletRequest request;private HttpSession session;private ServletContext application;public LoginAction3() {request = ServletActionContext.getRequest();session = request.getSession();application = session.getServletContext();}struts2访问 web 元素 2011-12-30 21:13:36| 分类: struts2 | 标签: struts2访问 web 元素 |字号 订阅取得 Map 类型的 request、session、application、真实类型的 HttpServletRequest、HttpSession、HttpServletApplication第一种方式:在 Action 中取得 Map 类型的 request、session、application 依赖于容器的方式public class LoginAction1 extends ActionSupport{private Map request;private Map sessi。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.