Caching web.xml中的筛选器url模式冲突?

Caching web.xml中的筛选器url模式冲突?,caching,jakarta-ee,webpage,ehcache,web.xml,Caching,Jakarta Ee,Webpage,Ehcache,Web.xml,我正在开发一个项目,该应用程序是在j2ee中,我使用了ehcache进行网页缓存,但由于filter的条目,它给了我一个错误内容编码错误,我添加了以下filter和ehcache.xml,有人能说是哪个条目导致它吗 web.xml筛选器条目 <filter> <filter-name>SetCharacterEncodingFilter</filter-name> <filter-class>org.springframew

我正在开发一个项目,该应用程序是在j2ee中,我使用了ehcache进行网页缓存,但由于filter的条目,它给了我一个错误内容编码错误,我添加了以下filter和ehcache.xml,有人能说是哪个条目导致它吗

web.xml筛选器条目

    <filter>
    <filter-name>SetCharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>SetCharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
    <filter>
    <filter-name>Pretty Filter</filter-name>
    <filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>Pretty Filter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>
<filter>
    <filter-name>extensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
    <init-param>
        <description>Set the size limit for uploaded files.
                   Format: 10 - 10 bytes
                  10k - 10 KB
        </description>
        <param-name>uploadMaxFileSize</param-name>
        <param-value>100m</param-value>
    </init-param>
    <init-param>
        <description>Set the threshold size - files below this limit are stored
             in memory, files above this limit are stored on disk.
                     Format: 10 - 10 bytes
                     10k - 10 KB
        </description>
        <param-name>uploadThresholdSize</param-name>
        <param-value>100k</param-value>
    </init-param>
    <init-param>
        <param-name>uploadRepositoryPath</param-name>
        <param-value>/home</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>extensionsFilter</filter-name>
    <url-pattern>*.jsf</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>
<filter>
    <filter-name>CachePage1CachingFilter</filter-name>
    <filter-class>net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter</filter-class>
    <init-param>
        <param-name>suppressStackTraces</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>cacheName</param-name>
        <param-value>CachePage1CachingFilter</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>CachePage1CachingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

SetCharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
强制编码
真的
SetCharacterEncodingFilter
/*
漂亮的过滤器
com.ocpsoft.pretty.PrettyFilter
漂亮的过滤器
/*
要求
向前地
错误
扩展过滤器
org.apache.myfaces.webapp.filter.ExtensionsFilter
设置上载文件的大小限制。
格式:10-10字节
10k-10KB
上传MaxFileSize
100米
设置阈值大小-存储低于此限制的文件
在内存中,超过此限制的文件存储在磁盘上。
格式:10-10字节
10k-10KB
上载阈值大小
10万
上传存储路径
/家
扩展过滤器
*.jsf
向前地
要求
错误
CachePage1机器过滤器
net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter
抑制堆栈跟踪
假的
缓存名
CachePage1机器过滤器
CachePage1机器过滤器
/*
要求
包括
向前地
xml如下所示

 <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">

<diskStore path="java.io.tmpdir"/>
<defaultCache
    maxElementsInMemory="10"
    eternal="false"
    timeToIdleSeconds="5"
    timeToLiveSeconds="10"
    overflowToDisk="true"
/>
<!-- Page and Page Fragment Caches -->
<cache name="CachePage1CachingFilter"
    maxElementsInMemory="10"
    eternal="false"
    timeToIdleSeconds="10000"
    timeToLiveSeconds="10000"
    overflowToDisk="true">
</cache>

编辑:-

我试过了,但我发现问题在于

   <filter-name>CachePage1CachingFilter</filter-name>
    <url-pattern>/*</url-pattern> 
CachePage1CachingFilter
/* 
在filter中,它在filter中连续运行。如果我写以下内容,则异常是可重入异常

    <filter-name>CachePage1CachingFilter</filter-name>
    <url-pattern>*.jsp</url-pattern>
CachePage1CachingFilter
*.jsp
它工作得很好,但我希望它能用于jsf,jsf的输入是在preety配置中完成的,如下面所示

 <url-mapping id="ManageUsers">
    <pattern>/manageUsers</pattern>
    <view-id>/pages/master/manageUsers.jsf</view-id>
 </url-mapping>

/管理用户
/pages/master/manageUsers.jsf
如何避免这种情况?

使用servlet spec 2.5(由Tomcat 6实现),您可以指定多个url模式:

<filter-mapping>
    <filter-name>CachePage1CachingFilter</filter-name>
    <url-pattern>*.jsp</url-pattern>
    <url-pattern>*.jsf</url-pattern>
</filter-mapping>

CachePage1机器过滤器
*.jsp
*.jsf
对于2.5之前的版本,您可以指定两个映射

<filter-mapping>
    <filter-name>CachePage1CachingFilter</filter-name>
    <url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>CachePage1CachingFilter</filter-name>
    <url-pattern>*.jsf</url-pattern>
</filter-mapping>

CachePage1机器过滤器
*.jsp
CachePage1机器过滤器
*.jsf

如果您发布包含堆栈跟踪的准确错误消息,则会有所帮助。