struts2 核心和工作原理

设计目标:使MVC模式应用于web程序设计

技术优势:1.所有的struts2应用程序都是基于client/server http 交换协议。The Java Servlet API 揭示了 Java Servlet 只是 Java Api 的很小子集,这样我们可以在业务逻辑部分使用功能强大的Java语言进 行程序设计。

               2.提供了对MVC的一个清晰的实现,这一实现包含了参与对所有请求进行处理的关键组件,如拦截 器,OGNL表达式,堆栈。

工作原理:

 struts2 核心和工作原理

一个请求在struts2框架中的处理大概分以下几个步骤:

客户端初始化指向一个Servlet容器的一个请求,这个请求经过一系列的过滤器(filter), filterDispatcher被调用,询问ActionMapping来决定这个请求是否需要调用某个Action.如果 ActionMapping决定调用某个Action,filterDispatcher把请求交给ActionProxy,ActionProxy通过 configurationManager询问框架配置文件,找到指定的Action类,这里一般从struts.xml中读取。 ActionProxy创建一个ActionInvocation的实例,ActionInvocation实例使用命名模式        来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用,一旦        Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。      返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者               FreeMarker的模版。