Filter 为什么向web.xml添加过滤器会导致404错误?

Filter 为什么向web.xml添加过滤器会导致404错误?,filter,struts2,http-status-code-404,Filter,Struts2,Http Status Code 404,为了学习/实践struts2,我使用了struts2原型初学者maven原型 我在尝试添加自己的过滤器时遇到了一个问题,希望有人能给我指出正确的方向 我在构建过程中使用eclipse和maven,使用Tomcat8.5作为本地主机服务器 我已经能够建立一些基本的行动。我现在尝试添加一个过滤器来设置请求的编码,这样我就可以处理日语输入。为此,我引用了这个关于过滤器的资源,以创建我自己的自定义过滤器,我在项目的web.xml文件中引用了它 过滤器参考源: 然而,当我试图访问我的项目的url时,我得到

为了学习/实践struts2,我使用了struts2原型初学者maven原型

我在尝试添加自己的过滤器时遇到了一个问题,希望有人能给我指出正确的方向

我在构建过程中使用eclipse和maven,使用Tomcat8.5作为本地主机服务器

我已经能够建立一些基本的行动。我现在尝试添加一个过滤器来设置请求的编码,这样我就可以处理日语输入。为此,我引用了这个关于过滤器的资源,以创建我自己的自定义过滤器,我在项目的web.xml文件中引用了它

过滤器参考源:

然而,当我试图访问我的项目的url时,我得到一个404错误

我尝试过在我的过滤器中添加断点,并在服务器上调试项目,但从未命中断点。(我可以调试并使用断点)

在我的web.xml文件中,我添加了过滤器声明:

    <filter>
        <filter-name>MyEncoder</filter-name>
<filter-class>jono_group.mav_arch_2.filters.MyChaEnFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>Shift_JIS</param-value>
        </init-param>
    </filter>

import java.nio.file.DirectoryStream.Filter
不是servlet筛选器

从您提供的链接,特别是从以下部分:

过滤器API由javax.servlet包中的
filter
FilterChain
FilterConfig
接口定义

FilterChain
FilterConfig
导入正确,
Filter
没有那么多

    <filter-mapping>
        <filter-name>MyEncoder</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
package jono_group.mav_arch_2.filters;

import java.io.IOException;
import java.nio.file.DirectoryStream.Filter;

import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class MyChaEnFilter implements Filter
{

    private FilterConfig filterConfig = null;
    private String encoding;

    public void doFilter(ServletRequest request,
    ServletResponse response, FilterChain chain) throws
    IOException, ServletException {
        String encoding = selectEncoding(request);
        if (encoding != null)
        request.setCharacterEncoding(encoding);
        chain.doFilter(request, response);
    }

    public void init(FilterConfig filterConfig) throws
    ServletException {
        this.filterConfig = filterConfig;
        this.encoding = filterConfig.getInitParameter("encoding");
    }

    protected String selectEncoding(ServletRequest request) {
        return (this.encoding);
    }

    public void destroy() {
        this.filterConfig = null;
    }

    @Override
    public boolean accept(Object entry) throws IOException {
        // TODO Auto-generated method stub
        return false;
    }
}