0

Tomcat 6.0.36 を使用しており、ウェルカム ページは /Login.jsp です。モバイル デバイス用に別のログイン ページを表示できるようにフィルタを設定しています。URL mywebsite.com/Login.jsp で機能しますが、URL が mywebsite.com だけの場合、フィルターはバイパスされます。

強制的に実行する方法はありますか?

このページを見つけましたが、私の場合は機能しません:

Tomcatのweb.xmlでwelcome-fileのフィルタをマップするにはどうすればよいですか?

ありがとう

私のweb.xml:

<welcome-file-list>
    <welcome-file>/Login.jsp</welcome-file>
</welcome-file-list>
...
<filter>
    <display-name>LoginPageFilter</display-name>
    <filter-name>LoginPageFilter</filter-name>
    <filter-class>filters.LoginPageFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>LoginPageFilter</filter-name>
    <url-pattern>/Login.jsp</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>

フィルター - 削除してすぐに元に戻しました

public class LoginPageFilter implements Filter 
{
    public LoginPageFilter()  { }

    public void init ( FilterConfig fConfig ) throws ServletException { }

    public void doFilter ( ServletRequest request, ServletResponse response,
        FilterChain chain ) throws IOException, 
    ServletException 
    {
        System.out.println ( "Filter being executed" );
        chain.doFilter(request, response);
    }

    public void destroy() { }
}

URLが

http://localhost:8080/gymfit/Login.jsp

次に、メッセージがコンソールに出力されます。

URLが

http://localhost:8080/gymfit/

同じページが表示されますが、メッセージはコンソールに出力されません

4

1 に答える 1

2

この行を見てください。これは、「/Login.jsp」へのリクエストのみがフィルタを実行することを意味します。

    <url-pattern>/Login.jsp</url-pattern>

このフィルターをすべてのパスに適用する場合は、構成を次のように変更します。

    <url-pattern>/*</url-pattern>
于 2013-05-09T09:38:30.363 に答える