北京动力节点-Struts2讲义-第3章Struts2核心技术.pdf

北京动力节点-Struts2讲义-第3章Struts2核心技术.pdf

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京动力节点-Struts2讲义-第3章Struts2核心技术

第 3 章 Struts2 核心 3.1 在Action 中获取Servlet API 为避免与Servlet API 耦合,Struts2 对 HttpServletRequest、HttpSession、ServletContext 进行了封装,构造了三个 Map 对象来替代这三种对象。当然,也可以获取到真正的这三个 Servlet 的API 。 在Action 中获取这三个对象的方式有三种。 3.1.1 通过ActionContext 获取(重要) 在 Struts2 框架中,通过 Action 的执行上下文类 ActionContext ,可以获取 request/session/application 对象。 ActionContext ctx = ActionContext.getContext(); MapString,Object application = ctx.getApplication(); MapString,Object session = ctx.getSession(); ActionContext 对象本身就是 request 范围的存储空间(现在暂且这样认为)。所以,对 于向request 范围中添加属性,直接向ActionContext 对象中添加即可。 举例:catcheServletAPI Step1: Step2: Step3: Step4: 3.1.2 通过ServletActionContext 获取(重要) 通过ActionContext 获取的request、session 、application 均为Map 对象,并非真正的Servlet API 。而通过ServletActionContext ,可以获取真正的Http 请求中的Servlet API 对象。 HttpServletRequest req = ServletActionContext.getRequest(); HttpServletResponse res = ServletActionContext.getResponse(); ServletContext application = ServletActionContext.getServletContext(); HttpSession session = ServletActionContext.getRequest().getSession(); 举例:catcherServletAPI2 拷贝catcheServletAPI,修改LoginAction 中的execute()方法即可。 3.1.3 通过实现特定接口来获取(了解) 通过让Action 实现特定接口,也可获取request/session/application 对象。不过需要注意 的是,这种获取方式获取的为Map,并不是真正的Servlet API 。  RequestAware 接口:该接口中只有一个方法 public void setRequest(MapString,Object request)  SessionAware 接口:该接口中只有一个方法 public void setSession (MapString,Object session)  ApplicationAware 接口:该接口中只有一个方法 public void setApplication (MapString,Object application) 举例:catcherServletAPI3 拷贝catcheServletAPI ,修改LoginAction,使其实现三个接口,并修改其execute()方法。 3.2 OGNL 与值栈 3.2.1 OGNL (1)什么是OGNL Struts2 中很多地方都使用了OGNL。所以在这里我们要学习Struts2 中有关OGNL 的知识。 OGNL 是Object-Graph Navigation Language 的缩写,它是一种功能强大的表达式语言, 是一个第三方开源项目。 OGNL 本身是与Struts2 没有任何关系的。但Struts 框架使用了OGNL 用于进行表达式的 计算工作。Struts2 通过使用OGNL 简单一致的表达式语

您可能关注的文档

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档