Что такое файл web.xml и что я могу с ним сделать? - PullRequest
71 голосов
/ 22 февраля 2010

Элементы дескриптора развертывания web.xml в документации Oracle BEA WebLogic Server 8.1 в значительной степени суммируют каждый элемент в файле web.xml. Но мне также интересно узнать о следующих пунктах:

  1. Есть ли какой-либо параметр конфигурации, которого следует избегать, например чумы?
  2. Какие-либо параметры, связанные с производительностью или использованием памяти?
  3. Риск, связанный с безопасностью из-за распространенной неверной конфигурации?

Что еще я должен знать о web.xml, кроме имен элементов и их использования?

Ответы [ 8 ]

98 голосов
/ 10 марта 2010

Что такое файл web.xml и что с ним можно делать?

Файл /WEB-INF/web.xml является дескриптором развертывания веб-приложения вашего приложения. Этот файл является XML-документом, который определяет все о вашем приложении, которое должен знать сервер (кроме контекстного пути, который назначается Application Deployer и Администратором при развертывании приложения): сервлетами и другими компонентами например, фильтры или слушатели, параметры инициализации, ограничения безопасности, управляемые контейнером, ресурсы, страницы приветствия и т. д.

Обратите внимание, что упомянутое вами упоминание довольно старое (Java EE 1.4), было несколько изменений в Java EE 5 и даже больше в Java EE 6 (что делает web.xml "необязательным" и представляет веб-фрагменты ).

Есть ли какой-либо параметр конфигурации, которого следует избегать, например чумы?

Номер * * тысяча двадцать-одна

Какие-либо параметры, связанные с производительностью или использованием памяти?

Нет, такие вещи настраиваются не на уровне приложения, а на уровне контейнера.

Риск, связанный с безопасностью из-за распространенной неверной конфигурации?

Что ж, если вы хотите использовать ограничения безопасности, управляемые контейнером, и не можете правильно их настроить, ресурсы, очевидно, не будут должным образом защищены. Кроме того, самые большие угрозы безопасности связаны с кодом, который вы развертываете в IMO.

27 голосов
/ 10 марта 2010

Что все, что я должен знать о web.xml кроме имени элемента и их использование?

Единственный самый важный параметр конфигурации JSP для ALL TIME находится в вашем web.xml. Дамы и господа, я даю вам ... вариант TRIM-DIRECTIVE-WHITESPACES !

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <trim-directive-whitespaces>true</trim-directive-whitespaces>
    </jsp-property-group>
</jsp-config>

Это удаляет все сотни или тысячи строк пустого пространства, которые вы получите в сгенерированном HTML, если будете использовать какие-либо библиотеки тегов (циклы особенно уродливы и расточительны).

Другой большой является веб-страница по умолчанию (страница, которую вы автоматически отправляете, когда не вводите веб-страницу в URL):

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>    
8 голосов
/ 09 марта 2010
  1. Нет, ничего не следует избегать
  2. Параметры, относящиеся к производительности, находятся не в web.xml, а в файлах конфигурации контейнера сервлета (server.xml на tomcat)
  3. Нет. Но сервлет по умолчанию (отображаемый в web.xml в общем месте вашего контейнера сервлетов) должен предпочтительно отключать списки файлов (чтобы пользователи не видели содержимое ваших веб-папок):

    объявления правда

6 голосов
/ 10 марта 2010

Я пытаюсь выяснить, как именно это работает. Этот сайт может быть полезным для вас. В нем есть все возможные теги для web.xml, а также примеры и описания каждого тега.

http://wiki.metawerx.net/wiki/Web.xml

3 голосов
/ 11 марта 2010

При использовании Struts мы отключаем прямой доступ к файлам JSP с помощью этого тега в web.xml

 <security-constraint>
<web-resource-collection>
  <web-resource-name>no_access</web-resource-name>
  <url-pattern>*.jsp</url-pattern>
</web-resource-collection>
<auth-constraint/>

1 голос
/ 22 февраля 2017
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <description></description>
    <display-name>pdfServlet</display-name>
    <servlet-name>pdfServlet</servlet-name>
    <servlet-class>com.sapta.smartcam.servlet.pdfServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>pdfServlet</servlet-name>
    <url-pattern>/pdfServlet</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
0 голосов
/ 04 февраля 2016

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" версия = "3,0">

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

0 голосов
/ 23 августа 2014

Файл дескриптора развертывания"web.xml": благодаря правильному использованию файл дескриптора развертывания, web.xml, вы можете управлять многими аспектами поведение веб-приложения, от предварительной загрузки сервлетов до ограничения доступ к ресурсам для контроля времени ожидания сеанса.

web.xml : используется для управления многими аспектами веб-приложения. Используя web.xml, вы можете назначить пользовательские URL для запуска сервлетов, указать инициализацию параметры для всего приложения, а также для конкретных сервлетов, контроль тайм-ауты сеансов, объявлять фильтры, объявлять роли безопасности, ограничивать доступ к сети ресурсы на основе объявленных ролей безопасности и т. д.

...