Отображение URL в Сервлетах - PullRequest
2 голосов
/ 01 мая 2010

Я создаю сайт с JSP и сервлетами. Как сопоставить URL-адрес, подобный этому example.com/12345, чтобы получить ответ, как если бы запрос был example.com/content.jsp?id=12345?

1 Ответ

3 голосов
/ 01 мая 2010

Используйте url-pattern из /*, соберите информацию о пути с помощью HttpServletRequest#getPathInfo() и, наконец, перешлите запрос к желаемому получателю с помощью RequestDispatcher#forward().

Базовый начальный пример (кроме бизнес-логики и обработки исключений):

String pathInfo = request.getPathInfo();
String id = pathInfo.substring(1); // Get rid of trailing slash.
String newURL = String.format("/content.jsp?id=%d", id);
request.getRequestDispatcher(newURL).forward(request, response);

В качестве альтернативы, особенно если на самом деле не используется бизнес-логика, вы также можете использовать для этого UrlRewriteFilter * Tuckey . Таким образом, вы можете переписать свой URL так же, как если бы вы использовали хорошо известный Apache HTTPD mod_rewrite.

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