Я пытаюсь построить сервлет, который вызывает страницу JSP, подобный следующему:Как я могу сопоставить «корневой» сервлет, чтобы другие скрипты все еще выполнялись?
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException, ServletException {
req.getRequestDispatcher("/WEB-INF/main.jsp").forward(req, resp);
}
мне нужен этот Servlet, чтобы ответить на корень домена (например: http://example.com/), поэтому я использую следующее отображение в web.xml:
<servlet-mapping>
<servlet-name>MainServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
проблема у меня в том, что это соответствует ВСЁ, так что, когда диспетчер направляет «/WEB-INF/main.jsp» это соответствует URL-шаблон так сервлет снова запускается. Это приводит к циклу, который выполняется до тех пор, пока он не умрет с java.lang.StackOverflowError.
Как я могу сопоставить корень, не препятствуя выполнению других сценариев?
вы не сможете сделать это, вы должны использовать хаки, я попробовал sa я на appengine см. здесь http://stackoverflow.com/questions/870150/how-to-access-static-resources-when-using-default-servlet, но не работает –
Может быть, время для принятого ответа? – Jeb