2016-02-13 90 views
1

我有一個登錄頁面,我想重定向到一個註冊頁面。但是我得到 HTTP Status 404 - /registration.jsp錯誤。路徑或項目層次:snapshotSEVERE:servlet [package]中的路徑[/ portal]引發的Servlet.service()拋出異常java.lang.NullPointerException

我想的是,如果用戶不抵抗,他們可以通過點擊
註冊什麼什麼我沒有做正確的

main.java

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

     response.getWriter().append("Served at: ").append(request.getContextPath()); 

     RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/Views/System/index.jsp"); 
     view.forward(request, response); 

     String action = request.getParameter("action"); 
     if(action.equals("register")) 
     { 
      view = request.getRequestDispatcher("/WEB-INF/Views/System/registration.jsp"); 
      view.forward(request, response); 
     } 
    } 

index.jsp

<legend> Login to Jupiter </legend> 

      <table class="table" border="1" width="30%" cellpadding="3"> 
       <thead> 
        <tr> 
         <th colspan="2">Login Here</th> 
        </tr> 
       </thead> 
       <tbody> 
        <tr> 
         <td>User Name</td> 
         <td><input type="text" name="username" /></td> 
        </tr> 
        <tr> 
         <td>Password</td> 
         <td><input type="password" name="userpass" /></td> 
        </tr> 

        <tr> 
         <td colspan="2">New Employee!! <a class="btn btn-info" href="/registration.jsp?action=register">Register Here</a></td> 

        </tr> 
       </tbody> 
      </table> 

      <input type="submit" name="action" value="Login" /> 
      </fieldset> 
       </center> 
     </form> 
</body> 
</html> 

錯誤日誌

Feb 13, 2016 4:40:33 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [com.greensun.jupiter.controller.main] in context with path [/Jupiter] threw exception 
java.lang.NullPointerException 
    at com.greensun.jupiter.controller.main.doGet(main.java:32) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:745) 
+0

根據你的代碼,我想指出你在index.jsp上調用view.forward的一件事,後來你寫了一些代碼。在我看來,只要您在請求調度程序中調用了前向方法,就不能編寫任何代碼。 – ramasCoder

回答

0

您構建了重定向到不存在的JSP頁面的網址,但你應該使用映射到充當控制器的一個servlet URL。

<servlet-mapping> 
    <servlet-name>MainServlet</servlet-name> 
    <url-pattern>/main</url-pattern> 
</servlet-mapping> 

現在你應該創建一個鏈接

<a class="btn btn-info" href="${pageContext.request.contextPath}/main?action=register">Register Here</a> 

在你得到參數register行動CONTROLER和使用調度轉發給registration.jsp

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    String action = request.getParameter("action"); 
    if(action != null && action.equals("register")) { 
     RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/Views/System/registration.jsp"); 
     view.forward(request, response); 
    } else { 
     PrintWriter out = response.getWriter(); 
     out.print("Served at: "+request.getContextPath());  
     RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/Views/System/index.jsp"); 
     view.forward(request, response); 
    } 
} 
+0

非常感謝 –

相關問題