java - SEVERE : Servlet. servlet [package] 在路径 [/portal] 上下文中的 service() 抛出异常 java.lang.NullPointerException

标签 java jsp servlets model-view-controller

我有一个登录页面,我想重定向到一个注册页面。但是我得到了 HTTP 状态 404 -/registration.jsp 错误。路径或项目层次结构:snapshot

我想要的是,如果用户没有被拒绝,他们可以通过点击注册
我做的不对

ma​​in.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)

最佳答案

您构建的 URL 重定向到不存在的 JSP 页面,但您应该使用映射到充当 Controller 的 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>

在 Controller 中,您获取register 操作的参数并使用调度程序转发到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);
    }
}

关于java - SEVERE : Servlet. servlet [package] 在路径 [/portal] 上下文中的 service() 抛出异常 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35381693/

相关文章:

Java 哈希(简单)

java - "Normalizing"BigDecimal 的哈希码 : howto?

java - 在 Struts 2 中保存对服务器调用之间的数据

javascript - 在JTable中提交表单之前如何在javaScript中获取数据

java - c :url tag includes jsession id query string

java - Jetty - 使用 jetty 默认 servlet 是否安全

java - 如何获取 Collectors.toMap 合并功能中的 key ?

java - 从 Java 应用程序调用 Servlet 时出现服务器错误

java - 使用 Eclipse Indigo 时获取 realpath 的问题

tomcat 中的 Java EE 应用程序