我已经为我的 MVC webapp 实现了 OpenSessionInViewFilter,它工作得几乎完美。唯一的问题是它还会为从网络服务器请求的每个图像、js、css 等创建一个会话。这是我不想要的。
我使用 struts2、spring 和 hibernate,这是我的 web.xml
<filter>
<filter-name>lazyLoadingFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>lazyLoadingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
所以因为我正在映射 url-pattern /* 它还需要所有图像等。我尝试将它设置为 *.jsp 和 *.action,但后来我又得到了延迟加载异常......我应该怎么做? 我已经寻找答案 5 个小时了,我的脑海里有点疯狂。
我需要做的就是让这个过滤器忽略所有静态资源。就是这样!对于其他一切它可以运行。听起来很简单,但真的很烦我,我不知道怎么做。
任何帮助将不胜感激。
我是否需要扩展过滤器来编写我自己的过滤器并在其中排除?如果是这样。如何?
编辑:似乎我可以在过滤器链的顶部为我的静态文件设置过滤器映射。然后将它们发送到“ByPassFilter”,从而绕过这些静态资源的过滤器链。这是要走的路吗??
多谢你们!