struts2的的过滤器

过滤器的理解:http://flysnow.iteye.com/blog/702798
在web.xml中定义的filter 即是过滤器,在请求服务器资源时 Filter的执行顺序是按照web.xml中配置的filter-mapping顺序执行的,每个过滤器都有filterChain.doFilter(request, response);//激活下一个过滤器,即激活下一个filter-mapping中的过滤,最后便开始执行相关业务

当你在web.xml配置多个过滤器的时候,一定要把struts的过滤器放到最后,这样可以防止过滤器链被中断,导致你配置的其他过滤器不起作用。

在过滤器中设置编码,客户端请求时,先把resquest的编码设置了,可以理解成传递的参数到过滤后,就得到相应的编码发送到服务器。

struts2的的过滤器
1.客户端首先向服务器发送一个请求(XXX.action)
2.这个请求首先经过一系列的过滤器(Filter)后,核心控制器FilterDispatcher根据请求去询问ActionMapper来决定是否需要调用某个Action做处理,如果ActionMapper决定需要调用某个Action,FilterDispatcher就会把请求处理交给ActionProxy.ActionProxy通过Configuration Manager询问框架的配置文件,找到要调用的Action.
3.ActionProxy创建一个ActionInvocation实例.ActionInvocation实例使用命名模式来调用,回调Action的execute方法,该execute方法首先获取用户请求的参数,然后执行某种逻辑操作,一般是数据库操作,当然,Action不会直接参与到数据库操作,而去调用相应的业务逻辑组件处理.(在调用Action的前后,将涉及到相关拦截器的调用)
4.当Action处理完毕之后,ActionInvocation会匹配配置文件中对应的返回结果,将结果反馈给用户

http://yoyo.is-programmer.com/posts/8162.html 
Struts2中拦截器与过滤器的执行顺序

http://www.iteye.com/wiki/blog/1328444 struts相关帮助链接
http://blog.163.com/hzd_love/blog/static/131999881201073042557890/
Action上下文创建(重点)

       ActionContext是一个容器,这个容易主要存储request、session、application、parameters等相关信息.ActionContext是一个线程的本地变量,这意味着不同的action之间不会共享ActionContext,所以也不用考虑线程安全问题。其实质是一个Map,key是标示request、session、……的字符串,值是其对应的对象

你可能感兴趣的:(struts)