web.xml过滤器中执行顺序的问题

web.xml过滤器中执行顺序的问题

问题描述:


struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter


struts2
/*


closeSession
com.oracle.xiaomi.filter.SessionCloseFilter


closeSession
/*


我在做struts2和hibernate整合的时候写了一个商品更新功能。更新完以后返回商品列表商品,发现商品更新后的数据不正常,但是数据库里的数据正常,刷新商品页面更新的商品数据会一直发生变化,再次更新会报a different object with the same identifier value was already associated with the session这个异常。
我感觉是更新后session没关闭,所以显示数据混乱,拿到的有session缓存中的数据,但是过滤器中session我已经关闭了。后来我把关闭session的过滤器写在了struts2核心过滤器的上面,就好了,也不会出现数据混乱和报异常了。现在很纠结,这和过滤器的执行顺序有关吗,同学的就不会出现问题。求大牛解答

有关系,顺序为xml 配置的顺序由下至上 执行

web.xml 的加载顺序是:context-param -> listener -> filter -> servlet ,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。配置的顺序由下至上 执行