2010-05-01 4 views
2

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

ответ

3

Используйте url-pattern из /*, собрать Pathinfo по 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); 

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

Смежные вопросы