Очистить URL с помощью jsp / servlets? - PullRequest
2 голосов
/ 20 августа 2010

Я планирую создать CMS с использованием jsp и сервлетов. Может кто-нибудь сказать мне, как реализовать чистые URL-адреса с использованием этих технологий?

Ответы [ 4 ]

4 голосов
/ 20 августа 2010

Вы можете попробовать использовать urlrewritefilter: http://code.google.com/p/urlrewritefilter/. При этом используется фильтр сервлета и xml-файл, чтобы ваше приложение имело чистые URL-адреса.Создание чистого URL-адреса - ваша собственная ответственность.

3 голосов
/ 20 августа 2010

Используйте HttpServletRequest#getPathInfo() в сервлете, который выступает в качестве фронт-контроллера.

Пример запуска без какой-либо тривиальной проверки:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.getRequestDispatcher("/WEB-INF" + request.getPathInfo() + ".jsp").forward(request, response);
}

Это сделает запрос, например http://example.com/context/servlet/foo/bar для отображения файла /WEB-INF/foo/bar.jsp.Файлы JSP должны быть помещены в /WEB-INF, чтобы предотвратить их прямой доступ.

См. Также:

0 голосов
/ 20 августа 2010

Используйте URLRewriteFilter или вы можете написать его самостоятельно, это довольно просто, если вы знаете, как использовать дескриптор развертывания и фильтр. Например, у вас есть сервлет, который отвечает содержимым на основе параметра запроса, например a.com? cat = book & post = java (назовите его showContent servlet ) и вы хотите переписать URL-адрес на a.com/book/java поэтому вы должны создать фильтр: имя фильтра: диспетчер отображение: / *

и в этом фильтре вы должны обработать строку "/book/java" для генерации данных для переменных cat и post . Затем просто перенаправьте его на showContent servlet для обработки запроса.

0 голосов
/ 20 августа 2010

Я использую JSTLтег

...