Struts2工作原理

Struts2工作原理

MVCModel——View——Controller,模型——视图——控制器)是一种程序设计理念。

目前在Java Web应用方面的MVC框架有很多,常用的StrutsJSFTapestrySpring MVC

Struts2=WebWork+Struts1

Struts2的工作流程如下图:

 

Struts2通过过滤器拦截要处理的请求。新的HTTP请求要经过一个过滤器链(ActionContextClearUp过滤器+其他Web应用过滤器+StrutsPrepareAndExecuteFilter过滤器)。

StrutsPrepareAndExecuteFilter过滤器被调用时,Action映射器先找到需要调用的Action对象,返回Action对象的代理。Action代理从配置管理器中读取Struts2的配置(Struts.xml)。读取完成后,Action容器经过Struts2的一系列拦截器,然后调用指定的Action对象。

Action处理请求后,返回相应的结果视图(JSPFreemarker)在这些视图之中可以使用Struts标签显示数据以及进行数据逻辑方面的控制。最后HTTP请求回应给浏览器,在回应的过滤中同样经过过滤器链。

Struts2框架主要通过一个过滤器(org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)将Struts集成到Web应用。通过这个过滤器Struts2可以获得Web应用中的HTTP请求,并将这个HTTP请求转发到指定的Action进行处理,Action根据处理的结果返回给客户端相应的页面。因此,在Struts2框架中,该过滤器是Web应用和Struts2 API之间的入口。

工作流程:

当浏览器向Web容器发送一个HTTP请求时,Web容器调用Struts2过滤器的doFilter方法,此时,Struts2就收到了HTTP请求,通过Struts2的内部处理机制,它判断这个HTTP请求是否与某个Action匹配,如果找到了匹配的Action就会调用Action对象的execute方法,并根据处理结果返回相应的值,然后Struts2通过Action的返回值所映射的页面,通过一定的视图回应给浏览器。

 

你可能感兴趣的:(Struts2工作原理)