我正在尝试构建一个调用类似于以下内容的JSP页面的Servlet:
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException, ServletException {
req.getRequestDispatcher("/WEB-INF/main.jsp").forward(req, resp);
}
Run Code Online (Sandbox Code Playgroud)
我需要这个Servlet来响应域的根(例如:http://example.com/)所以我在web.xml中使用以下映射:
<servlet-mapping>
<servlet-name>MainServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是它匹配一切,所以当调度程序转发到"/WEB-INF/main.jsp"时,这与url-pattern匹配,以便Servlet再次运行.这会产生一个循环,直到它以java.lang.StackOverflowError消失.
如何在不阻止其他脚本运行的情况下匹配根目录?
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>workflow.WDispatcher</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>*NEXTEVENT*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
以上是Tomcat的片段web.xml.*NEXTEVENT*启动时的URL模式抛出
java.lang.IllegalArgumentException:servlet映射中的<url-pattern>无效
如果有人能提示错误,将不胜感激.
tomcat web.xml servlets illegalargumentexception servlet-mapping