在执行jsp过滤之前显示欢迎页面的Tomcat

时间:2013-05-09 07:36:06

标签: tomcat6 servlet-filters

我使用的是Tomcat 6.0.36,欢迎页面是/Login.jsp 我有一个过滤器,以便它可以显示移动设备的不同登录页面。 它适用于URL mywebsite.com/Login.jsp,但当URL只是mywebsite.com时,会绕过过滤器。

有没有办法强迫它执行?

我找到了这个页面,但在我的情况下它不起作用:

How to map a filter for welcome-file in web.xml for Tomcat?

由于

我的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() { }
}

如果网址为

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

然后将消息打印到控制台。

当网址为

http://localhost:8080/gymfit/

显示相同的页面,但邮件未打印到控制台

1 个答案:

答案 0 :(得分:2)

看一下这一行,这意味着只有'/Login.jsp'请求才能执行过滤器

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

如果要将此过滤器应用于所有路径,请将配置更改为:

    <url-pattern>/*</url-pattern>