java filter中使用mybaties的问题

自己开发的一个公司用的cms系统中,有一个解析标签的功能。此功能是 在filter中截取到被渲染完的页面的内容,然后把内容中的标签替换成数据库中的数据。

项目中的orm框架使用的是mybaites。于是在filter中声明了全局变量获取到spring 的ApplicationContext和mybaties的sqlSessionFactory,和session 并在 init方法中初始化了session,然后在doFilter中使用在nit中的到的session,结果后台更新了数据后前台不更新,后台是spring直接管理session,由spring配置文件配置后注入到系统中。刚开始因为是有包含文件里有标签,以为是jsp生成缓存了,是jsp的问题,后来搞了一通,不是jsp缓存问题。后来又配置mapper不缓存查询,结果运行一会马上session就丢失,数据库就没法连接,报从连接池取到的连接是null。折腾了好久,后来常识每次在doFfilter中打开session,然后操作完以后关闭,这才解决了这个问题,所以大家用filter的时候要注意了,不能在init中open了session就一直用。这应该还是session缓存更新的问题吧。

posted @ 2017-07-07 10:35  涛涛的笔记  阅读(500)  评论(0编辑  收藏  举报