首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts2的工作流程和容易忽略的有关问题

2013-10-08 
Struts2的工作流程和容易忽略的问题工作流程:1,客户端提交一个HttpServletRequest请求2,请求经过一系列的F

Struts2的工作流程和容易忽略的问题

     工作流程:

1,客户端提交一个HttpServletRequest请求

2,请求经过一系列的Filter的处理(ActionCleapUp,FilterDispatcher);

3, FilterDispatcher是Struts2的核心控制器,通常这是最后一个过滤器;

4, 请求到FilterDispatcher后,将询问ActionMapper是否调用一个Action来处理这个Request

5, 如果ActionMapper决定调用一个Action,FilterDispatcher把请求交给ActionProxy,进行处理;

6 ActionProxy通过Configuration Manager访问struts.xml;

7 ActionProxy 创建一个ActionInvocation实例,而ActionInvocation通过代理模式调用Action,(注意调用前会加载相关的所有Interceptor)

8,Action执行完毕,返回给result字符串,此时再按相反的方向通过Interceptor拦截器

9,最后ActionInvacation负责根据struts.xml配置的result元素,找到返回值相应的result,决定返回的视图;

 


   设计模式的角度:MVC的思想相似与观察者模式;在观察模式中,观察者和被观察者是两个对等的对象;在MVC思想中,被观察者往往只是数据体,而观察者是视图;

注意;经典的MVC与Web应用中的MVC也有差别,主要原因是web应用时一种基于HTPP请求/响应模式的,对于http的请求响应,如果用户不对应用发出请求,视图无法自动更新。

  MVC架构的底层机制是:核心Servlet或Filter接受到用户请求后,通常会对用户进行简单的预处理(解析,封装参数)然后通过反射创建Action实例,并调用Action指定的方法来处理用户的请求,但是如果Servlet或者Filter拦截了用户的请求,就会通过下面的两种方式创建Action实例;

a: 通过配置文件,可以配置login.action对应使用LoginAction类《这样MVC架构就能创建对象;

b:利用约定:例如:核心控制器收到regist.action请求后,将调用Action类来处理请求。


   Struts2的工作流程和容易忽略的有关问题

热点排行