Как я уже говорил в предыдущих постах, имеется масса вариантов создания псевдонимов, указывающих на сервлет. Например, можно легко отобразить на сервлет запрос, выглядящий как запрос 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 с отображением на расширение файла, помните, что он никогда не начинается со слеша (/).