Descriptor

部署描述符

部署描述符是JavaEE程序常见的一部分,但是之前都没有较为全面的学习过,这里就较为全面的记录一下部署描述符中的元素。部署一个Servlet 3 或以上应用程序是一件轻而易举的事。通过Servlet注解,对于不太复杂的应用程序,甚至可以部署没有描述符的Servlet/JSP应用程序。但是需要更加精细配置或是我们不能修改框架源码的情况,仍然需要部署描述符。首先,部署描述符必须命名为web.xml并位于WEB-INF目录下。Java类编译后class文件和配置文件都会放置在WEB-INF/classes目录下,而Java类库都放在WEB-INF/lib目录下,所有的应用程序资源打包成war为后缀的jar文件,这个war中包含WEB-INF(web.xml, classes,lib),页面资源。

在存在如下场景,部署描述符不能少:

需要传递全局初始化参数给ServletContext
有多个过滤器,并要设置调用顺序
需要修改会话超时设置
需要限制资源的访问,并配置用户身份验证方式
先来看看web.xml的头部声明:

<?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"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
[metadata-complete="true|false"]
...
</web-app>

xsi:schemaLocation 属性指定了元素文档的位置,以便可以进行验证。version属性指定了Servlet规范的版本。

可选的metadata-complete属性指定部署描述符是否是完整的,若值为True,则Servlet/JSP容器将忽略Servlet注解。若值为False或不存在该值,则容器必须检查类文件的Servlet注解

原文地址:https://www.cnblogs.com/448aml/p/10548627.html