Я играю со встроенной Jetty, и мне интересно, почему мой фильтр only перехватывает /hi
, а не любой другой входящий запрос.Вот мой пример:
Без фильтра:
localhost:8080/hi
=> "Hello"
localhost:8080/foo
=> 404
С фильтром:
localhost:8080/hi
=> "Hello from filter"
localhost:8080/foo
=> 404
Я ожидаю, что последние 404 вернут «Привет из фильтра».Чего мне не хватает?
Server server=new Server(8080);
ServletContextHandler context=
new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
context.addFilter(DispatchFilter.class,"/*",1);
context.addServlet(HelloServlet.class,"/hi");
server.setHandler(context);
server.start();
server.join();
Чтобы пояснить, мой пример - просто упрощенное представление того, что я хочу сделать.Мое намерение состоит в том, чтобы DispatchFilter
перехватывал каждый запрос.Если определенный критерий не выполняется, он должен двигаться дальше, в противном случае возвращать что-то, полученное из пути запроса.