2017-01-02 4 views
0

私は単純なWebアプリケーションを持っています。 これは私のサーブレットリクエストURLハンドラサーブレットが間違っています

@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> 

私はシンプルなMavenのWebプロジェクトを使用しています。間違った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は、プロジェクトのルートフォルダにあります(パスに沿って)

関連する問題