Можете ли вы визуализировать файл без расширения.jsp в качестве JSP?

Можно ли сказать стандартному контейнеру сервлетов Java EE интерпретировать и визуализировать файл как JSP, даже если он не имеет расширения.jsp?

Скажем, у меня есть файл с именем foo.xyz в корневом каталоге моей WAR. Этот файл содержит некоторую логику jstl, как и следовало ожидать в файле.jsp. Если я http://myserver/myapp/foo.xyz, я увижу буквальный код из этого файла в виде текста. Есть ли способ настроить веб-приложение таким образом, чтобы оно отображало файл с помощью интерпретатора JSP без изменения расширения файлов?

Пожалуйста, не спрашивайте, почему я хочу это сделать. Ограничения сложны.

2 ответа

Решение

Добавьте отображение сервлета JSP на этом шаблоне URL в ваш веб-приложение web.xml,

<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.xyz</url-pattern>
</servlet-mapping>

Обратите внимание, что это предполагает, что собственный сервлет JSP сервлет-контейнера зарегистрирован с именем сервлета jsp которое является де-факто стандартным именем сервлета JSP-сервлета. Проверьте <servlet> вход внутри собственного сервлетконтейнера web.xml чтобы быть уверенным. В случае, например, Tomcat, это /conf/web.xml файл в его папке установки.

Вы можете добавить следующую конфигурацию в свой web.xml сделать файлы, заканчивающиеся на .xyz обрабатывается как JSP:

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.xyz</url-pattern>
    </jsp-property-group>
</jsp-config>

Это решение работает с Tomcat и Websphere. И, вероятно, с любым JEE-совместимым серверным контейнером.

Другие вопросы по тегам