2017-01-02 1 views
0

나는 간단한 웹 응용 프로그램을 가지고 있습니다. 이 내 서블릿잘못된 요청 url 처리기 servlet

@WebServlet(urlPatterns = "/info_send", loadOnStartup = 1) 

public class ApplicationController extends HttpServlet { 

    @Override 
    public void init() throws ServletException { 
     UsersService.addUser("admin", "admin"); 
    } 

    @Override 
    protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException { 
     PrintWriter writer = httpServletResponse.getWriter(); 
     httpServletResponse.setContentType("text/html"); 

     String login = httpServletRequest.getParameter("login"); 
     String password = httpServletRequest.getParameter("pass"); 

     if (!login.isEmpty() && !password.isEmpty() && UsersService.isLoginPresent(login)) { 
      if(UsersService.isUserExist(login, password)) { 
       getServletContext().getRequestDispatcher("/result.jsp").forward(httpServletRequest, httpServletResponse); 
      } else { 
       writer.println("User with such login is already registered."); 
       getServletContext().getRequestDispatcher("/").include(httpServletRequest, httpServletResponse); 
      } 
     } else { 
      writer.println("No such user in the system"); 
      getServletContext().getRequestDispatcher("/").include(httpServletRequest, httpServletResponse); 
     } 
     writer.close(); 
    } 

    @Override 
    protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException { 
     httpServletResponse.getWriter().write("The request was wrong"); 
    } 
} 

입니다 이건 내 web.xml을

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     version="3.0"> 

    <error-page> 
     <location>/error.jsp</location> 
    </error-page> 

    <error-page> 
     <location>/AppExceptionHandler</location>e 
    </error-page> 

</web-app> 

나는 간단한 받는다는 웹 프로젝트를 사용하고 있습니다. 어떻게하면 잘못된 URL을 처리 할 수 ​​있습니까? 예를 들어 localhost:8080/home/12을 확인하면? 내 경우 오류 페이지 (error.jsp)와 오류 처리기 (다른 서블릿)가 작동하지 않았습니다.

답변

0

제공되는 솔루션은 서블릿 3.0에서 작동해야합니다. 당신은 응용 프로그램이 제대로을보고 귀하의 web.xml은 WEB-INF 폴더에 있습니다) 또한

1 확인

<error-page> 
    <error-code>404</error-code> 
    <location>/error.html</location> 
</error-page> 

같은 오류 코드를 지정 시도 할 수 있습니다.

2) error.jsp는 경로에 따라 프로젝트의 루트 폴더에 있습니다.