struts2的原理:
用户发送一个HttpServletrequest的请求给tomcat,然后经过一个applicayionCleanUp,otherFilter等拦截器,到达filterDispatcher(过时的叫法)
现在把核心拦截器叫strutsprepareAndexecutefilter。
它会把请求去询问ActionMapping看是否有对应的action去处理。如果没有action就不会处理。
如果有对应的action,ActionMapping会返回给filterDispatCher,filterDispatcher会把这个请求转交给actionProxy,代理会调用actionConfiguration,然后action的配置会读取struts.xml文件,再把文件中的信息原路返回给代理
代理获得配置文件的数据后会创建一个proxyInnovation,去处理请求对应的action。
但在处理之前要进过intoceter1,2,3,,n等拦截器,通过拦截器然后才能去处理action,处理之后action是要返回一个string的字符串根据xml文件来决定返回的result是一个什么样的jsp页面。也就是模版。
返回模版之后再经过n,,3,2,intorcer1拦截器,这样倒着拦截的一个过程,通过之后返回给用户一个HttpServletResponse。
网友评论