2015-12-22 7 views
-2

фильтрHTTP Status 404 - Not Found

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

сервлет

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 Status 404 - Not Found

Тип Статус отчет

messageNot Найдено

DescriptionThe запрошенный ресурс не доступен. GlassFish сервер Open Source Edition 4.0

Я дал весь код плз помогите мне найти мою ошибку в час новый для sevlet вопрос может показаться глупыми, но плз помочь мне

+0

Что такое servlet1? – Abdelhak

ответ

0

HTTP Status 404 - Not Found

потому что ваш сервлет отображается на /HelloServlet, и ваш фильтр пытается перехватить servlet1. поскольку нет сервлета в servlet1, контейнер говорит, что ресурс не найден.

изменить отображение фильтра на /HelloServlet и <a href="/HelloServlet">click here</a>.

+0

Спасибо, что он работал –

0

Попробуйте изменить это:

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

С:

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

Спасибо, что он сработал –

+0

спасибо, что он работал –

+0

картирование фильтра изменено на/* и click here