Как я уже говорил в предыдущих постах, имеется масса вариантов создания псевдонимов, указывающих на сервлет. Например, можно легко отобразить на сервлет запрос, выглядящий как запрос JSP-файла. Дескриптор развертывания, приведенный в листинге ниже, ставит сервлету FirstServlet в соответствие шаблон URL /register.jsp.
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>ru.topcode.testserv.FirstServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>/register.jsp</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>/firstservlet_too/*</url-pattern> </servlet-mapping> </web-app>
Если вы теперь запустите приложение и перейдете по ссылке http://localhost:8084/test-servlet/register.jsp, то попадете на страницу, которую выдает сервлет FirstServlet. Прямой слеш, с которого начинается шаблон URL /register.jsp означает “начиная с корневого каталога web-приложения, использующего данный дескриптор развертывания”.
Можно отобразить все ссылки на все страницы JSP на единственный сервлет.
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>ru.topcode.testserv.FirstServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>/firstservlet_too/*</url-pattern> </servlet-mapping> </web-app>
Убедитесь что вы исключили слеш (/) из этого шаблона URL, поскольку отображение на расширение файла всегда задается так: звездочка, точка и расширение файла. Такой тип отображения может быть полезен при переходе от старой версии приложения, использующей много страниц JSP, к новой версии, целиком построенной на сервлетах. Это – забота о пользователях, сохранивших закладки с URL, указывающие на страницы JSP.
Вы можете сделать так, чтобы ответы на запросы с URL, выглядящими как запросы к статичному содержимому (например, к HTML-файлам), формировал сервлет, хотя это зачастую излишне. В примере, приведенном ниже, сервлет FirstServlet отображается на все URL, заканчивающиеся суффиксом .html. Любой запрос внутри web-приложения, содержащего этот дескриптор развертывания и заканчивающийся на .html, будет направлен к FirstServlet.
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>ru.topcode.testserv.FirstServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> </web-app>
Внимание! Создавая шаблон URL с отображением на расширение файла, помните, что он никогда не начинается со слеша (/).



#1 by Viktor on 29 Июль 2009 - 13:20
Quote
Спасибо за обзор. Добавил ваш блог в закладки. Желаю творческих успехов.
#2 by Kleosanbo on 12 Август 2009 - 14:36
Quote
Спасибо за пост. Не забрасывайте блог, очень хорошо у вас получается писать.
#3 by Дмитрий Леонтьев on 19 Ноябрь 2009 - 21:28
Quote
Спасибо за поддержку. Писать обязательно буду.