Можно ли сопоставить сервлет с / * без переопределения обработки JSP? - PullRequest
5 голосов
/ 25 января 2011

Обрабатывая это:

Я сопоставляю сервлет или фильтр с "/ *"

Теперь, если я получу доступ к URL-адресу, например:

/test

Тогда этобудет направлен на сервлет (что нормально)

Но если я получу доступ к URL-адресу, например:

/index.jsp

Это будет также направлено на сервлет, я не хочу такого поведения, чтоЯ хочу, чтобы index.jsp обрабатывался как jsp.

Как это можно сделать?

1 Ответ

3 голосов
/ 25 января 2011

Отобразите свой сервлет контроллера на более конкретный url-pattern, такой как /controller/*, и создайте Filter, который отображается на /* и выполняет примерно так же, как следует в методе doFilter().

String uri = ((HttpServletRequest) request).getRequestURI();
if (uri.endsWith(".jsp")) {
    chain.doFilter(request, response); // Just let it go. The container's builtin JspServlet will pickup this.
} else {
    request.getRequestDispatcher("/controller" + uri).forward(request, response); // Goes to controller servlet.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...