Struts2学习

  1. 概要

是一个基于MVC模式的web应用框架,它本质上相当于一个servlet。在MVC设计模式中,struts作为控制器(controller)来建立模型与视图之间的交互。Struts2WebWork为核心,采用拦截器的机制来处理用户的请求。


2. Web层框架的前端控制器模式

传统模式的开发中,一个请求对应一个servlet,这样会导致出现很多servletStruts2的所有请求先经过一个前端控制器,在前端控制器中实现部分功能,剩下的具体操作提交到具体的Action中。因为所有请求都可以被过滤器拦截,所有用过滤器是实现前端控制器的最好方法。



3.搭建Struts2框架

 1、首先,要导包


 2、导入Struts2约束

选择struts-2.3.dtd这个文件,用文本编辑器打开可以看到它的URI,注意Key Type要选择URI。


   3、书写Action类

   


     4、书写src/struts.xml



      5、将struts2核心过滤器配置到web.xml



4. Struts2访问流程&架构



5. 总结

1、 所有请求,首先要经过核心过滤器StrutsPrepareAndExecuteFilter,然后ActionMapper处理请求,分析请求需要用哪个Action等等,然后返回信息ActionMapping给核心过滤器,ActionMapping里封装了这次请求它所需要的资源信息。(该Filter会过滤用户请求,如果用户请求以action结尾,该请求就会被转入struts2框架来处理。)

2、 核心过滤器把ActionMapping转交给ActionProxy,然后ActionProxy使用ConfigurationManager读取配置文件,ConfigurationManager把配置信息返回给ActionProxy。

3、 ActionProxy根据根据配置文件的信息和ActionMapping中的信息,就可以知道请求需要调用哪个Action,所以就可以创建Action对象,接着把它交给Action Inovation,同时也把拦截器集合interceptors交给Action Inovation。

4、 Action Inovation负责调度Action以及intercepter。
在调用Action之前,先调度一系列拦截器,这些拦截器能够解析HttpServletRequest请求,完成封装参数、参数校验等一系列功能,减少了Action中的代码,是AOP思想的一种体现。

5、 Struts2默认设置了20个拦截器,经过拦截器后,执行Action中的代码。一旦Action执行完毕,Action Invocation负责根据struts.xml中的配置找到对应的返回结果,之后可能经过转发或重定向。

Struts2配置文件加载顺序

1、每次从客户端发送的请求都要经过struts2的核心过滤器StrustAndExecuteFilter,这个过滤器有两个功能:预处理和执行。
预处理:加载配置文件,对应的是过滤器的init方法。
执行:执行一组拦截器完成一部分功能,对应的是过滤器的doFilter方法
    首先,查询过滤器的init方法:定义了一个Dispatcher,进入它的初始化方法




     然后在initDispatcher中,再进入init方法

  

       最后,找到一系列加载配置文件的代码




后面三个是我们可以修改的,要注意的是,这几个配置文件是有一定顺序的。这几个配置文件都可以修改struts常量的值,后加载的配置将覆盖前面加载的配置。








发布了30 篇原创文章 · 获赞 19 · 访问量 6994
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章