Сервлет обрабатывает запросы, которые он не должен обрабатывать - PullRequest
0 голосов
/ 07 мая 2018

У меня есть очень простой сервлет, который должен обрабатывать запросы к корню моего приложения. Он развернут в IBM Websphere.

Обычно я хочу возвращать index.jsp каждый раз, когда пользователь запрашивает мое приложение, например:

Вот код:

@WebServlet(urlPatterns = {"", "/"})
public class MainPageController extends HttpServlet {

    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.getServletContext().getRequestDispatcher("/index.jsp").forward(req, resp);
    }
}

Работает как надо (я получаю JSP), но когда возвращается страница JSP - JSP запрашивает JS, CSS-файлы и эти запросы (пример http://localhost:8888/myapp/js/main.js) перехватывается этим сервлетом.

Почему мой сервлет, который должен обрабатывать только /, также обрабатывает другие запросы (например, /js/main.js)?

Ничего особенного в web.xml. Нет отображений сервлетов, нет других сервлетов, нет объявления списка файлов приветствия.

1 Ответ

0 голосов
/ 09 мая 2018

Используйте только следующий urlPattern:

@WebServlet(urlPatterns = {""} )

он будет обрабатывать только запросы к корню контекста вашего приложения, а не к css или любым другим подпапкам. Не добавляйте шаблоны с / к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...