【发布时间】:2017-08-10 11:13:38
【问题描述】:
我的 servlet 没有正确转发。根据我的尝试,我不断被转发到 Tomcat-8.5 404 或 500 错误页面。当我收到 500 错误时,它只是说 servlet 抛出了异常。
我正在尝试检索锚标记的名称(在导航栏中),并根据名称将其转发到正确的 JSP。一旦我得到这个工作,我将使用这个 servlet 来检查现有会话或启动新会话。
非常感谢您的帮助。
下面是我的 servlet 映射:
<servlet>
<servlet-name>SessionTracker</servlet-name>
<servlet-class>SessionTracker</servlet-class>
</servlet>
<!-- Servlet Maps -->
<servlet-mapping>
<servlet-name>SessionTracker</servlet-name>
<url-pattern>/donate/*</url-pattern>
</servlet-mapping>
下面是锚标记:
<li><a href="/donate/donate.jsp" name="donate">Donate</a></li>
注意,我也在锚标签上尝试了以下内容:
<li><a href="/donate/donate.jsp?name=donate" name="donate">Donate</a</li>
下面是各自的Java函数:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext sc = getServletContext();
String url = forwardRequest(request, response, sc);
sc.getRequestDispatcher(url).forward(request, response);
}
private static String forwardRequest(HttpServletRequest request, HttpServletResponse response, ServletContext sc){
String url = new String("");
String name = request.getParameter("name");
switch(name){ //switch state to determine which
case "donate":
url = "/donate/donate.jsp";
break;
case "mission":
url = "/about/missionStatement.jsp";
break;
}
return url;
}
【问题讨论】:
-
那是什么异常?
-
当我能够从日志中提取堆栈跟踪时,我得到了 NullPointerException,而另一次我得到了 StackOverflow。
-
即使在我停止 Tomcat 后,日志仍然提供大量输出