web-dev-qa-db-fra.com

Qu'est-ce qu'un fichier web.xml et quelles sont toutes les choses que je peux faire avec?

Les éléments de descripteur de déploiement web.xml de la documentation BEA WebLogic Server 8.1 d’Oracle résument assez bien chaque élément dans un fichier web.xml. Mais je suis aussi curieux des points ci-dessous:

  1. Y at-il un paramètre de configuration qui devrait être évité comme peste?
  2. Des paramètres liés aux performances ou à l'utilisation de la mémoire?
  3. Risque lié à la sécurité dû à une mauvaise configuration commune?

Que devrais-je savoir de plus sur web.xml en dehors des noms d’élément et de leur utilisation?

70
Ravi Gupta

Qu'est-ce qu'un fichier web.xml et qu'est-ce que tout ce que je peux faire avec?

Le fichier /WEB-INF/web.xml est le descripteur de déploiement d'application Web de votre application. Ce fichier est un document XML qui définit tout ce que votre serveur doit savoir sur votre application (à l'exception du chemin de contexte assigné par Application Deployer et Administrator lors du déploiement de l'application): servlets et autres composants tels que des filtres ou écouteurs, paramètres d'initialisation, contraintes de sécurité gérées par le conteneur, ressources, pages d'accueil, etc.

Notez que la référence que vous avez mentionnée est assez ancienne (Java EE 1.4), il y a eu peu de modifications dans Java EE 5 et encore plus dans Java EE 6 (ce qui rend le web.xml "facultatif" et introduit Web Fragments ).

Y at-il un paramètre de configuration qui devrait être évité comme peste?

Non.

Des paramètres liés aux performances ou à l'utilisation de la mémoire?

Non, ces éléments ne sont pas configurés au niveau de l'application mais au niveau du conteneur.

Risque lié à la sécurité dû à une mauvaise configuration commune?

Eh bien, si vous souhaitez utiliser des contraintes de sécurité gérées par le conteneur et si vous ne parvenez pas à les configurer correctement, les ressources ne seront évidemment pas correctement protégées. En dehors de cela, les plus gros risques en matière de sécurité proviennent du code que vous allez déployer pour l'OMI.

98
Pascal Thivent

Que dois-je savoir sur le fichier web.xml en dehors du nom de l'élément et de leur utilisation?

Le paramètre de configuration JSP le plus important SINGLE de ALL TIME est dans votre fichier web.xml. Mesdames et Messieurs, je vous donne ... la TRIM-DIRECTIVE-WHITESPACES option!

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

Cela supprime toutes les centaines, voire les milliers de lignes d'espace blanc que vous obtiendrez dans votre code HTML généré si vous utilisez des bibliothèques de balises (les boucles sont particulièrement laides et inutiles).

L'autre gros est la page Web par défaut (la page à laquelle vous êtes automatiquement envoyé lorsque vous n'entrez pas de page Web dans l'URL):

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>    
27
  1. Non, il n'y a rien qui devrait être évité
  2. Les paramètres liés aux performances ne sont pas dans web.xml mais dans les fichiers de configuration du conteneur de servlets (server.xml sur Tomcat).
  3. Non, mais la servlet par défaut (mappée dans un fichier web.xml à un emplacement commun dans votre conteneur de servlets) devrait de préférence désactiver les listes de fichiers (afin que les utilisateurs ne voient pas le contenu de vos dossiers Web):

    annonces vrai

8
Bozho

J'essaie de comprendre exactement comment cela fonctionne aussi. Ce site pourrait vous être utile. Il contient toutes les balises possibles pour web.xml ainsi que des exemples et des descriptions de chaque balise. 

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

6
sixtyfootersdude

Si vous utilisez Struts, nous désactivons l'accès direct aux fichiers JSP en utilisant cette balise dans 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/>

3
JoseK
<?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>
1

Fichier descripteur de déploiement "web.xml": grâce à l'utilisation appropriée du fichier descripteur de déploiement Web.xml, vous pouvez contrôler de nombreux aspects du comportement de l'application Web, du préchargement des servlets à la restriction. accès aux ressources, pour contrôler les délais de session.

web.xml : est utilisé pour contrôler de nombreuses facettes d’une application Web . Web.xml vous permet d’attribuer des URL personnalisées pour appeler des servlets. Spécifiez les paramètres d’initialisation pour l’application entière ainsi que pour des servlets spécifiques, des délais de session de contrôle , de déclaration de filtres, de déclaration de rôles de sécurité, de restriction de l'accès aux ressources Web en fonction de rôles de sécurité déclarés, etc.

0
A_BOSS

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