Я использую Jetty-9 во встроенном режиме и нуждаюсь только в одном веб-приложении. Поэтому я хотел бы корневой URL, чтобы перейти на домашнюю страницу этого приложения, то есть что-то вродеПеренаправление пути корневого контекста или привязка его к сервлету или его сопоставление с приветственным файлом
http://localhost:4444/
должен закончиться в сервлет. Я начинаю с:
ServletContextHandler scContext =
new ServletContextHandler(ServletContextHandler.SESSIONS);
scContext.setContextPath("/");
Ни одно из следующих работал, ни
scContext.addServlet(ListsServlet.class, "/");
ни
scContext.setWelcomeFiles(new String[]{"/lists})
где /lists
сопоставлен с ListsServlet
сервлета. Все, что я получаю, - это 403 (Запрещено).
Я не использую DefaultServlet
, который, кажется, обрабатывает файлы приветствия. Но так как ServletContextHandler
имеет setWelcomeFiles
, я ожидал, что он будет содержать логику их использования.
Любые идеи?
Прохладной, это должно работать, за исключением того, что я не могу в настоящее время проверить его, потому что, что бы я ни делал, я получаю «Проблема с доступом /. Причина: Запрещено». Необходимо исследовать, как обойти это. – Harald
Вау, это занимало много времени. У меня был «ResourceHandler» 'перед« HandlerList », и он увлекается« Запрещенным », когда видит«/». Обертка' Rewr iteHandler' тоже вокруг, но я не мог использовать «RedirectRule» для ''/'' to '"/lists "', потому что это создает цикл переадресации. Что работает - 'RegexRedirectRule' для'^/? $ '.В любом случае, вы дали правильный намек. – Harald
@Harald Я обнаружил, что 'RedirectPatternRule.setPattern (" ")', в отличие от '("/")', предотвращает цикл. –