- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Struts2深入第七章
回顾与作业点评Struts2中开发一个Action有几种方法?package元素与Java中的包有什么异同之处?Result结果类型有哪些?有什么区别?
预习检查Struts2中为什么需要拦截器?拦截器和拦截器栈有什么异同?自定义拦截器有哪些方式?
本章任务实现自定义安全验证拦截器实现租房网房屋信息分页显示
本章目标掌握Struts2架构掌握Struts2拦截器掌握Struts2自定义拦截器
Struts2架构剖析
Struts2执行流程1、客户端向Servlet容器(如Tomcat)提交一个请求2、请求经过一系列过滤器(如ActionContextCleanUp过滤器等)3、核心控制器被调用,询问ActionMapper来决定请求是否需要调用某个Action4、如果ActionMapper决定需要调用某个Action,核心控制器把控制权委派给ActionProxy(备注:JSP请求无需调用Action)
Struts2执行流程5、ActionProxy通过ConfigurationManager询问框架的配置文件(struts.xml),找到需调用的Action类6、ActionProxy创建一个ActionInvocation的实例7、ActionInvocation负责调用Action,在此之前会依次调用所有配置的拦截器8、Action执行完毕,ActionInvocation负责根据结果码字符串在struts.xml的配置中找到对应的返回结果9、拦截器被再次执行10、过滤器被再次执行
Struts2核心接口和类ActionMapper根据请求的URI查找是否存在对应Action调用ActionMapping保存调用Action的映射信息,如namespace、name等ActionProxy在XWork和真正的Action之间充当代理ActionInvocation表示Action的执行状态,保存拦截器、Action实例Interceptor可以在请求处理之前或者之后执行的Struts2组件Struts2绝大多数功能通过拦截器完成
Struts执行流程简图HttpServletRequestHttpServletResponse核心控制器Intercepter1Intercepter2Intercepter3ActionResult
为什么需要拦截器早期MVC框架将一些通用操作写死在核心控制器中,致使框架灵活性不足、可扩展性降低Struts2将核心功能放到多个拦截器中实现,拦截器可自由选择和组合,增强了灵活性,有利于系统的解耦
什么是拦截器Struts2大多数核心功能是通过拦截器实现的,每个拦截器完成某项功能拦截器方法在Action执行之前或者之后执行拦截器栈从结构上看,拦截器栈相当于多个拦截器的组合在功能上看,拦截器栈也是拦截器拦截器与过滤器原理很相似为Action提供附加功能时,无需修改Action代码,使用拦截器来提供
拦截器工作原理拦截器的执行过程是一个递归的过程三阶段执行周期:1、做一些Action执行前的预处理2、将控制交给后续拦截器或返回结果字符串3、做一些Action执行后的处理
拦截器工作原理拦截器示例publicclassMyTimerInterceptorextendsAbstractInterceptor{ publicStringintercept(ActionInvocationinvocation) throwsException{ //预处理工作 longstartTime=System.currentTimeMillis();//执行后续拦截器或Action Stringresult=invocation.invoke();//后续处理工作 longexecTime=System.currentTimeMillis()-startTime;System.out.println(Theintervaltimeis+execTime+ms); //返回结果字符串returnresult; }}
Struts2自带拦截器Params拦截器负责将请求参数设置为Action属性servletConfig拦截器将源于ServletAPI的各种对象注入到ActionfileUpload拦截器对文件上传提供支持exception拦截器捕获异常,并且将异常映射到用户自定义的错误页面validatio
您可能关注的文档
- 综合android设计系统.pptx
- 根据试卷案例所提及几个工作场景来看misfit访谈记录.pdf
- 南京金牛湖两山产业投资开发有限公司招聘笔试题库2024.pdf
- 瑞金市乡村发展投资建设有限公司招聘笔试题库2024.pdf
- 新宁县城镇农村建设投资有限公司招聘笔试题库2024.pdf
- 靖州苗族侗族自治县九苓经济建设投资有限公司招聘笔试题库2024.pdf
- 烟台市蓬莱区农发投资有限公司招聘笔试题库2024.pdf
- 山东鲁中控股集团有限公司招聘笔试题库2024.pdf
- 江西都昌县国盛国有资产运营有限公司招聘笔试题库2024.pdf
- 陕西旬邑县国有资产资源管理有限公司招聘笔试题库2024.pdf
- 重庆新速达物业服务集团股份凯里公司招聘笔试题库2024.pdf
- 浙江杭州千岛湖泰众肉类食品有限公司招聘笔试题库2024.pdf
- 陕西新华出版传媒集团新华书店分公司招聘笔试题库2024.pdf
- 宁夏海原县肉牛产业发展集团有限公司招聘笔试题库2024.pdf
- 浙江温岭市化工轻工建筑材料有限公司招聘笔试题库2024.pdf
- 中航飞机汉中航空零组件制造有限公司招聘笔试题库2024.pdf
- 山东海阳市海昇矿产资源开发有限公司招聘笔试题库2024.pdf
- 山东潍坊寿光市公共交通运输有限公司招聘笔试题库2024.pdf
- 内蒙古察右前旗农业投资开发有限公司招聘笔试题库2024.pdf
- 线上清明祭英烈活动策划.pptx
文档评论(0)