Можете ли вы визуализировать файл без расширения.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-совместимым серверным контейнером.