Servlet Mapping не работает - PullRequest
       39

Servlet Mapping не работает

0 голосов
/ 15 сентября 2011

Теперь у меня возникла следующая проблема: я пытаюсь создать сайт, используя Tomcat 7 и JSP.Но я не могу правильно настроить сервер.Я хочу, чтобы веб-сайт отображал в адресной строке браузера что-то вроде mydomain.com/about без * .jsp или * .html.Для реализации этого у меня есть компонент перенаправления, который вызывается JSP-страницей, анализирует запрошенный URI и возвращает путь к JSP-файлу, который должен быть перенаправлен.Проблема заключается в отображении сервлета в web.xml. Там я попытался создать отображение сервлета, например, для / about, которое сопоставлено с redirect.jsp, который вызывает bean-компонент.Проблема в том, что я получаю следующее исключение:

javax.servlet.ServletException: не был указан класс сервлета для перенаправления сервлета

Вот код файла web.xml:

<servlet-mapping>
    <servlet-name>redirect</servlet-name>
    <url-pattern>/engine</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>redirect</servlet-name>
    <url-pattern>/about</url-pattern>
</servlet-mapping>

Кстати: index.jsp вызывается правильно, потому что он находится в списке файлов приветствия.Проблема заключается в перенаправлении на другие сайты без отображения их пути в адресной строке.

Возможно, есть способ переадресации в Javabean.Это может быть вызвано тегом <servlet-class> в отображении сервлета.

Заранее спасибо за помощь!Max

Ответы [ 2 ]

4 голосов
/ 15 сентября 2011

Не указан класс сервлета для перенаправления сервлета

Эта ошибка просто означает, что в web.xml не определен сервлет с именем redirectнапример

<servlet>
    <servlet-name>redirect</servlet-name>
    <servlet-class>com.example.YourServletClass</servlet-class>
</servlet>

или

<servlet>
    <servlet-name>redirect</servlet-name>
    <jsp-file>/redirect.jsp</jsp-file>
</servlet>

Исправьте web.xml соответственно.


Не связано с конкретной проблемой, рекомендуюиспользовать вместо этого один Filter с некоторым (XML?) файлом конфигурации.Что-то вроде фильтра перезаписи URL Tuckey , который очень похож на Apache HTTPD mod_rewrite.

1 голос
/ 15 сентября 2011

Извините, это всего лишь один блок выше в web.xml

<servlet>
    <servlet-name>redirect</servlet-name>
    <description>The main redirection thing</description>
    <jsp-file>/jsp/redirect.jsp</jsp-file>
</servlet>

<servlet-mapping>
    <servlet-name>redirect</servlet-name>
    <url-pattern>/engine</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>redirect</servlet-name>
    <url-pattern>/about</url-pattern>
</servlet-mapping>

Не решение.Я совершенно уверен, что хочет узел, где определяется сервлет.Но, как я уже сказал, мне нужен JSP-файл.

...