Я пытаюсь добавить URL-маршрутизацию в веб-приложение, работающее в Tomcat 5.5.
Я хочу сделать URL-адреса динамических страниц более дружелюбными, изменив main.jsp?type=test&group=info
на main/test/info
, как и все в ярости.
Я настроил следующее в web.xml
<servlet>
<servlet-name>main</servlet-name>
<jsp-file>/main.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/main/*</url-pattern>
</servlet-mapping>
и в main.jsp я использую request.getPathInfo()
, чтобы получить данные, необходимые для маршрутизации. Все это, кажется, работает нормально, и когда я перехожу к http://mytestserver/example/main/test/info
, я получаю HTML, который я ожидаю.
Проблема в том, что все относительные ссылки на этой странице, изображения, таблицы стилей, javascript и т. Д. Теперь не работают, поскольку они интерпретируются как относящиеся к полному URL.
Я не могу придумать простой способ использовать статические ссылки, потому что URL-адреса на тестовом сервере и производственном сервере находятся на разных уровнях: http://mytestserver/example/
отображается на http://example.com/
в работе, и я действительно не хочу иметь написать код для переноса каждой внутренней ссылки на сайте или настроить виртуальный сервер для каждого сайта на тестовом сервере.
Есть ли что-нибудь еще, что я могу сделать?