【问题标题】:HTTP Status 404 - Not Found [duplicate]HTTP 状态 404 - 未找到 [重复]
【发布时间】:2015-12-22 12:12:41
【问题描述】:

过滤器

import java.io.IOException;  
import java.io.PrintWriter;  

import javax.servlet.*;  

public class MyFilter implements Filter{  

@Override
public void init(FilterConfig arg0) throws ServletException {}  

@Override
public void doFilter(ServletRequest req, ServletResponse resp,  
    FilterChain chain) throws IOException, ServletException {  

    PrintWriter out=resp.getWriter();  
    out.print("filter is invoked before");  

    chain.doFilter(req, resp);//sends request to next resource  

    out.print("filter is invoked after");  
    }  
    public void destroy() {}  
}  

servlet

import java.io.IOException;  
import java.io.PrintWriter;  

import javax.servlet.ServletException;  
import javax.servlet.http.*;  

public class HelloServlet extends HttpServlet {  
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  

        response.setContentType("text/html");  
        PrintWriter out = response.getWriter();  

        out.print("<br>welcome to servlet<br>");  

    }  

}  

web.xml

<web-app>  

<servlet>  
 <servlet-name>HelloServlet</servlet-name>  
 <servlet-class>HelloServlet</servlet-class>  
</servlet>  

<servlet-mapping>  
 <servlet-name>HelloServlet</servlet-name>  
 <url-pattern>/HelloServlet</url-pattern>  
</servlet-mapping>  

<filter>  
 <filter-name>MyFilter</filter-name>  
 <filter-class>MyFilter</filter-class>  
</filter>  

<filter-mapping>  
 <filter-name>MyFilter</filter-name>  
 <url-pattern>/servlet1</url-pattern>  
</filter-mapping>  


</web-app>  

index.html

     <a href="servlet1">click here</a>  

错误是:

HTTP 状态 404 - 未找到

输入状态报告

消息未找到

描述请求的资源不可用。 GlassFish Server 开源版 4.0

我已经给出了整个代码请帮我找出我的错误 我是 sevlet 的新手 问题可能听起来很愚蠢,但请帮助我

【问题讨论】:

    标签: java servlets filter


    【解决方案1】:

    HTTP 状态 404 - 未找到

    因为您的 servlet 映射到 /HelloServlet 并且您的过滤器试图拦截 servlet1 。因为在 servlet1 没有 servlet,容器说没有找到资源。

    将过滤器映射更改为/HelloServlet&lt;a href="/HelloServlet"&gt;click here&lt;/a&gt;

    【讨论】:

      【解决方案2】:

      尝试改变这一点:

         <a href="/servlet1">click here</a>  
      

      与:

        <a href="/HelloServlet">click here</a> 
      

      【讨论】:

      • 过滤器映射更改为 /* 和 点击这里
      • 为什么是撇号?
      • 对不起点击这里
      • 我得到了上面提到的更正的输出谢谢你
      • 它是否有效?
      猜你喜欢
      • 2018-05-06
      • 2014-11-20
      • 2019-07-30
      • 1970-01-01
      • 2021-08-29
      • 2019-07-30
      • 2018-05-01
      • 2019-10-27
      • 1970-01-01
      相关资源
      最近更新 更多