Web应用程序版本究竟是什么?它有什么影响?

Kor*_*gay 25 web.xml java-ee

在java Web应用程序中,有一个名为web.xml的文件,它有一个版本控制.

究竟是什么?它是干什么用的?

是web.xml的SO wiki.但它并没有真正解释我.

它允许您在Web应用程序中定义,声明和配置基于Servlet API的实现,例如servlet,过滤器和侦听器.

有人可以用简单的例子来解释这个吗?

谢谢.

编辑:

示例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">
Run Code Online (Sandbox Code Playgroud)

Mil*_*kic 32

Web.xml是您定义Web应用程序配置的中心位置.例如,您可以在那里指定:

我还建议研究Servlet 3.0规范,其中许多参数可以通过注释设置.

版本

版本控制是指XML模式版本,您的web.xml文件的语法必须遵守.更重要的是,它还指示应用程序实现的Servlet规范的版本.web.xml应该如何开始遵循Servlet 3.0的示例:

<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">
Run Code Online (Sandbox Code Playgroud)

大多数IDE将自动生成该部分web.xml.如果您出于某种原因要手动更改它,请小心匹配web-app和xsd的版本 - 请参阅此答案.

有关具体示例web.xml,请参阅:


Sun*_*amy 5

从 Servlet 3.0 开始,Web.xml 是可选的,您可以使用@WebServlet注解代替。

如果您使用的是 Springorg.springframework.web.WebApplicationInitializer 则可以代替使用或与web.xml一起使用

WebApplicationInitializer :

在 Servlet 3.0+ 环境中实现的接口,以便以编程方式配置 ServletContext —— 与传统的基于 web.xml 的方法相反(或可能结合)。

回答您的以下问题。

它有什么影响?(在 Spring 应用程序中

web.xml 版本控制:

但是,如果WEB-INF/web.xml应用程序中存在,则其版本属性必须设置为 "3.0" 或更高版本,否则servlet 容器ServletContainerInitializer 将忽略引导

您可以在此处阅读 WebApplicationInitializer 的完整 Java 文档。