0

以下是我的 web.xml 的内容,应用程序在 websphere 8.5 中部署

<filter>
    <filter-name>securityFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>CheckFilter</filter-name>
    <url-pattern>/index.jsp</url-pattern>
</filter-mapping>
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>

我面临的问题是当我点击https://servername:portNumber/contextPath/?QueryParam之类的 url 时,我的 CheckFilter 没有被调用。 同样在 tomcat 和 weblogic 上工作正常。

但是如果我输入 url https://servername:portNumber/contextPath/index.jsp?QueryParam

我的过滤器被调用。要获得第一个 url 的响应,我需要更改什么。

即不提供 index.jsp 过滤器应该被调用。

4

1 回答 1

0

因此,根据您的要求,您有两种选择

1)像这样添加 urlpattern /(因为如果您只调用应用程序上下文,则模式中没有 index.jsp)

<filter-mapping>
        <filter-name>RootFilter</filter-name>
        <url-pattern>/index.jsp</url-pattern>
        <url-pattern>/</url-pattern>
</filter-mapping>

2)由于请求被转发index.jsp,您可以添加FORWARD到您的过滤器映射,如下所示:

<filter-mapping>
    <filter-name>RootFilter</filter-name>
    <url-pattern>/index.jsp</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>
于 2016-09-23T08:46:12.620 回答