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