web-dev-qa-db-fra.com

Quelle est exactement la version de l'application Web? Qu'est-ce que cela affecte?

Dans une application Web Java, il existe un fichier appelé web.xml et il comporte un contrôle de version.

Qu'est-ce que c'est exactement? A quoi cela sert? 

Ici est le wiki SO pour web.xml. Mais cela ne m'explique pas vraiment beaucoup. 

Il vous permet de définir, déclarer et configurer le Servlet basé sur l'API implémentations dans votre application Web, telles que les servlets, les filtres et les fichiers les auditeurs.

Quelqu'un peut-il expliquer cela avec des exemples simples peut-être? 

Je vous remercie. 

Modifier: 

Exemple de gestion de version web.xml:

<web-app xmlns="http://Java.Sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
23
Koray Tugay

Web.xml est un emplacement central où vous définissez la configuration de votre application Web. Par exemple, vous pouvez spécifier ici:

Je suggérerais également de rechercher la spécification Servlet 3.0, où beaucoup de ces paramètres peuvent être définis via des annotations.

Gestion des versions

La gestion des versions fait référence à la version du schéma XML à laquelle la syntaxe de votre fichier web.xml doit obéir. Plus important encore, il indique également la version de la spécification Servlet implémentée par votre application. Un exemple montrant comment web.xml compatible avec Servlet 3.0 devrait commencer:

<web-app version="3.0" xmlns="http://Java.Sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd">

La plupart des IDE généreront automatiquement cette partie de web.xml. Si vous voulez le modifier manuellement pour une raison quelconque, veillez à faire correspondre les versions de web-app et xsd - voir cette réponse par exemple.

Pour des exemples concrets de web.xml, voir:

30
Miljen Mikic

À partir de Servlet 3.0, Web.xml est facultatif. Vous pouvez utiliser l'annotation @WebServlet à la place. 

Si vous utilisez Spring, org.springframework.web.WebApplicationInitializer peut être utilisé à la place ou avec web.xml.

WebApplicationInitializer: 

Interface à implémenter dans Servlet 3.0 + environnements afin de configurer le ServletContext par programme - par opposition à (ou éventuellement conjointement avec) l’approche traditionnelle basée sur web.xml.

Pour répondre à votre question ci-dessous.

Qu'est-ce que cela affecte? (Dans une application Spring)

web.xml versioning:

Cependant, si WEB-INF/web.xml est présent dans l'application, son version attribut doit être défini sur "3.0" ou supérieur, sinon ServletContainerInitializerl'amorçage sera ignoré par le conteneur de servlet.

Vous pouvez lire le document Java complet de WebApplicationInitializer ici .

4

ce que je comprends du web.xml esp pour la partie de web-app version="3.0" est la version de votre servlet. Je limite donc ma réponse à la version de la servlet et à la raison pour laquelle elle est si importante. Comme vous le savez peut-être, la version de votre servlet contrôle la plupart des autres normes lorsque vous programmez avec Java EE.

Par exemple,

JSF 2.0 nécessite que SERVLET 2.5 soit livré avec Java EE5 et WEBLOGIC 10.3.X prennent en charge toutes ces technologies. Pour les autres conteneurs, vous devez consulter les notes de publication. Deuxièmement, JSF 2.1 nécessite que SERVLET 3.0 soit livré avec Java EE6 et que WEBLOGIC 12c prend en charge toutes ces technologies. Bien sûr, la compatibilité ascendante est assurée, cependant, la plupart des cas, il est possible que certains problèmes se posent.

lorsque nous avons consulté les notes de publication de weblogic 12c, nous avons mis en vedette les technologies les plus importantes prises en charge, ainsi que la version du servlet. J'espère que cela vous sera également utile avec l'excellente réponse de Miljen Mikic.

Standard    Version
Contexts and Dependency Injection for Java EE   1.0
Dependency Injection for Java EE    1.0
Expression Language (EL)    2.2, 2.1, 2.0
Only JSP 2.0 and greater supports Expression Language 2.x.
JAAS    1.0 Full
JASPIC  1.0
Java API for XML-Based Web Services (JAX-WS)    2.2, 2.1, 2.0
Java API for RESTful Web Services (JAX-RS)  1.1
Java Authorization Contract for Containers (JACC)   1.4
**Java EE   6.0**
Java EE Application Deployment  1.2
Java EE Bean Validation 1.1
Jave EE Common Annotations  1.0
Java EE Connector Architecture  1.6
Java EE EJB 3.1
Java EE Enterprise Web Services 1.3, 1.2, 1.1
Jave EE Interceptors    1.1
**Java EE JDBC  4.0, 3.0**
Java EE JMS 1.1, 1.0.2b
Java EE JNDI    1.2
**Java EE JSF   2.1, 2.0, 1.2, 1.1**
Java EE JSP 2.2, 2.1, 2.0, 1.2, and 1.1
JSP 1.2. and 1.1 include Expression Language (EL), but do not support EL 2.x or greater.
Java EE Managed Beans   1.0
**Java EE Servlet   3.0, 2.5, 2.4, 2.3, and 2.2**
Java RMI    1.0
JavaMail    1.4
JAX-B   2.2, 2.1, 2.0
JAX-P   1.3, 1.2, 1.1
JAX-R   1.0
JAX-RPC 1.1
JCE 1.4
**JDKs  6.0 (aka 1.6), 5.0 (aka 1.5, clients only)**
JMX 1.2, 1.0
JPA 2.0, 1.0
JSR 77: Java EE Management  1.1
JSTL    1.2
Managed Beans   1.0
OTS/JTA OTS 1.2 and JTA 1.1
RMI/IIOP    1.0
SOAP Attachments for Java (SAAJ)    1.3, 1.2
Streaming API for XML (StAX)    1.0
Web Services Metadata for the Java Platform 2.0, 1.1
1
berkay