Вопрос

Я пытаюсь пробежать в Tomcat с чистыми URL -адресами. Поскольку мои знания о картировании URL и фильтрах Tomcat довольно ограничены, я сталкиваюсь с кирпичной стеной.

Я хотел бы создать передний контроль под названием index.groovy Это обрабатывает все входящие запросы. Проблема в том, что я не могу понять, как создать правильный web.xml отображения. Это то, что у меня сейчас есть (что в значительной степени стандартно):

<servlet>
    <servlet-name>Groovy</servlet-name>
    <servlet-class>groovy.servlet.GroovyServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Groovy</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

Если я сейчас попытаюсь получить доступ к своему экземпляру со следующим URL, я получаю 404.

http://localhost:8080/GroovyTest/index.groovy/test

Конечно, в идеале я бы хотел index.groovy Сценарий, который будет выполнен, где я могу выбрать остальную часть пути.

Это было полезно?

Решение

Я думаю, что главной проблемой здесь является ваше недоразумение в том, как работает оба сервлета. Итак, вот краткое объяснение:

  • Когда вы описываете такое отображение, это указывает на то, что все URL -адреса, соответствующие шаблону «/*», будут отправлены в класс GroovyServlet. При таком общем шаблоне все URL -адрес являются действительными, что может привести к некоторым проблемам, например, при попытке получить доступ к изображениям, стилям и т. Д.
  • Groovyservlet уже диспетчер. Если вы посмотрите на это исходный код, вы увидите, что из-за его наследования он просто проверит, что заданный путь существует в каталоге «/web-inf/groovy/». В вашем примере это означает, что он ищет файл "/web-inf/groovy/index.groovy/test"
  • Если этот файл существует, он выполняется как отличный скрипт (с некоторым декоратором), и результат возвращается с типом MIME «Text/HTML».

Теперь я думаю, что вы можете четко понять, почему это не работает на вас. Я бы предпочел предложить вам два других подхода для достижения цели:

  • Посмотрите Грааль, Это одна из лучших подходящих средств для занятий веб -разработкой.
  • Принять источник Галик Микро-кадра. Мало того, что это хорошее начало понимать, как работа по отправке, но также имеет хороший учебник, чтобы помочь управлять чистыми URL -адресами
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top