- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Struts2的架和运行流程
第3章-Struts2的架构和运行流程(一)Struts2的系统架构 如下图: 上面图中分了好多块,彼此之间相互联系,分为4中颜色 (1)橙色是Servlet Filters, 过滤器链,所有的请求都要经过Filter链的处理。 (2)浅蓝色是Struts Core ,Struts2的核心部分,Struts2中已经做好的功能,在实际开发中不需要动它们。 (3)浅绿色是Interceptors,Struts2的拦截器。Struts2提供了很多默认的拦截器,可以完成日常开发的绝大部分工作;当然,也可以自定义拦截器,用来实现具体业务需要的功能。 (4)浅黄色是User Created,由开发人员创建的,包括struts.xml、Action、Template,是每个使用Struts2来进行开发的人员都必须会的。?(二)各个模块说明 (1)FilterDispatcher是整个Struts2的调度中心,根据ActionMapper的结果来决定是否处理请求,如果ActionMapper指出该URL应该被Struts2处理,那么它将会执行Action处理,并停止过滤器链上还没有执行的过滤器。 (2)ActionMapper提供了HTTP请求与action执行之间的映射,简单地说,ActionMapper会判断这个请求是否应该被Struts2处理,如果需要Struts2处理,ActionMapper会返回一个对象来描述请求对应的ActionInvocation的信息。 (3)ActionProxy是一个特别的中间层,位于Action和xwork之间,使得在将来有机会引入更多的实现方式,比如通过WebService来实现等。 (4)ConfigurationManager是xwork配置的管理中心,通俗地讲,可以把它看做struts.xml这个配置文件在内存中的对应。 (5)struts.xml是Struts2的应用配置文件,负责诸如URL与Action之间映射的配置,以及执行后页面跳转的Result配置等。 (6)ActionInvocation:真正调用并执行Action,它拥有一个Action实例和这个Action所依赖的拦截器实例。ActionInvocation会执行这些拦截器、Action以及相应的Result. (7)Interceptor(拦截器):拦截器是一些无状态的类,拦截器可以自动拦截Action,它们给开发者提供了一在Action运行之前或Result运行之后来执行一些功能代码的机会,类似于我们熟悉的javax.servlet.Filter. (8)Action:动作类是Struts2中动作执行单元。用来处理用户请求,并封装业务所需要的数据。 (9)Result: Result就是不同视图类型的抽象封装模型,不同的视图类型会对应不同的Result实现,Struts2中支持多种视图类型,比如Jsp,FreeMarker等。 (10)Templates:各种视图类型的页面模板,比如JSP就是一种模板页面技术。 (11)Tag Subsystem: Struts2的标签库,它抽象了3中不同的视图技术JSP、velocity、freemarker,可以在不同的视图技术中,几乎没有差别地使用这些标签。?(三)Struts2的运行流程 写一个HelloWorldAction程序中,我们做了什么: (1)在web.xml中配置了Struts2的过滤器 (2)写了一个Action类,名称为HelloWorldAction (3)在Struts.xml中配置了这个Action类 (4)写了两个页面,一个是登录页面,一个是欢迎页面 做了上面的事情后,就可以在Struts2的帮助下完成功能调用,那么Struts2内部是怎么运行的呢? 下面根据架构图来进行分析: (1)首先是在登录页面,用户填入账号和密码,然后单击提交按钮,好了,就从这里开始分析背后的处理流程,这是我们分析的起点。 (2)用户提交登录请求后,请求的URL为:helloWorldAction.action,请求会被Tomcat服务器接收到,Tomcat服务器会根据请求URL中的web上下文,也就是/Struts2_2,来选择处理这个请求的Web应用,那就是由/Struts2_2这个web工程来处理这个请求。 form action=helloWorldAction.action method=post input type=hidden name=submitFlag value=login 账
文档评论(0)