- 1、本文档共94页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 简单一致的表达式语
您可能关注的文档
- 办公区6S标识及标签标准201103.pdf
- 力聚蒸气发生器.pdf
- 办公家具产品配置案例.pdf
- 办公空间功能分类(一)2014.10.26.pdf
- 功率二极管的基本特性和选定.pdf
- 功率半导体器件与功率集成技术的发展现状及展望_孙伟锋.pdf
- 功率计操作说明.pdf
- 功和能量演示12.pdf
- 功能性、可靠性、易用性等的国标以及需求示例.pdf
- 功能FC和功能块FB的使用.pdf
- 国防军工行业:无人机军民两用空间广阔,关注军工板块结构性复苏-241026-中信建投-29页.pdf
- 光伏行业月报:协会呼吁依法合规参与市场竞争,建议关注各细分领域头部企业-241031-中原证券-15页.pdf
- 银行业理财月度观察(2024年10月):“股债跷跷板”如何扰动理财?-241027-光大证券-13页.pdf
- 华金证券保隆转债(113692.SH)申购分析:全球最大的排气系统管件和气门嘴供应商之一-241030-西部证券-14页.pdf
- 国防军工行业2025年投资策略:建设强大稳固的现代边海空防,外延业务值得期待-241030-光大证券-41页.pdf
- 宏观固收周观察20241027期:LPR如期调降,加拿大降息50BP-241027-中信建投-31页.pdf
- 银行业招商、兴业、中信、光大银行2024年三季报点评:营收增速边际稳中向好-241101-民生证券-18页.pdf
- 企业并购重组重大风险专家提示.pdf
- 美国大选落定,后续怎么看.pdf
- 主题方法论系列(二):如何挖掘并购重组机会?-241028-中信建投-40页.pdf
文档评论(0)