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

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

  • Есть ли какой-либо параметр конфигурации, который следует избегать, как чума?
  • Любые параметры, связанные с производительностью или использованием памяти?
  • Связанный с безопасностью риск из-за общей неправильной конфигурации?

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

Ответы

Ответ 1

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

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

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

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

Нет.

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

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

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

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

Ответ 2

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

SINGLE самый важный параметр конфигурации 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>    

Ответ 3

  • Нет, ничего не следует избегать
  • Параметры, связанные с производительностью, не находятся в web.xml, они находятся в файлах конфигурации контейнера сервлета (server.xml на tomcat)
  • Нет. Но сервлет по умолчанию (отображаемый в web.xml в общем месте в вашем контейнере сервлетов) должен предпочтительно отключать списки файлов (чтобы пользователи не отображали содержимое ваших веб-папок):

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

Ответ 4

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

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

Ответ 5

Если вы используете 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/>

Ответ 6

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

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

Ответ 7

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>

Ответ 8

<?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>