部署

部署

首先,部署描述符必须被命名为web.xml并且位于WEB-INF目录下,Java类必须放置在WEB-INF/classes目录下,而Java类库则必须位于WEB-INF/lib目录下。

一. 概述

虽然web.xml不再是必须的文件,但是,若村咋如下场景,则依然需要部署描述符:

  • 需要传递初始参数给ServletContext
  • 有多个过滤器,并要指定调用顺序
  • 需要更改会话超时设置
  • 要限制资源的访问,并配置用户身份验证方式

描述符的框架:

<?xml version="1.0" encoding="ISO-8859-1"?>
<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"
>
</web-app>
  • xsi:schemaLocation属性指定了模式文档的位置,以便可以进行验证。version属性指定了Servlet规范的版本。
  • 可选的metadata-complete属性指定部署描述符是否是完整的,若值为True,则Servlet/JSP容器将忽略掉Servlet注解。若值为False或不存在,则容器必须检查类文件的Servlet注解,并扫描web.xml文件。
  • 每个元素的配置规则可见app_3_0.xsd文档,可以从如下网站下载:
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd

  • app_3_0.xsd包括另外一种模式(webcommon_3_0.xsd),其中包含了大部分信息。可以从如下网站下载:
    http://java.sun.com/xml/ns/javaee/web-common_3_0.xsd

  • webcommon_3_0.xsd包括了javaee_6.xsd,jsp_2_2.xsd两种模式。

二. 核心知识点

2.1 web-app元素是文档的根元素,并且可以具有如下子元素:

  • Servlet声明
  • Servlet映射
  • ServletContext的初始化参数
  • 会话配置
  • 监听器类
  • 过滤器定义和映射
  • MIME类型映射
  • 欢迎文件列表
  • 错误页面
  • JSP特定的设置
  • JNDI设置

2.2 web-app核心元素

  • context-param
  • distributable
  • error-page
  • filter
  • filter-mapping
  • listener
  • locale-encoding-mapping-list
  • locale-encoding-mapping
  • login-config
  • mime-mapping
  • security-constraint
  • security-role
  • Servlet
  • servlet-mapping
  • session-config
  • welcome-file-list
  • JSP-Specific-Elements
  • taglib
  • jsp-property-group

2.3 web fragment

Servlet 3 添加了web fragment特性,用来为已有的Web应用部署插件或框架。web fragment被设计成部署描述的补充,而无需编辑web.xml文件。一个web fragment基本上包含了常用的Web对象,如Servlet、过滤器和监听器,其他资源如JSP页面和静态图像的包文件(JAR文件)。一个web fragment也可以有一个描述符,类似的部署描述符的XML文档。web fragment描述符必须命名为web-fragment.xml,并位于包的META-INF目录下。一个web fragment描述可能包含任意可出现在部署描述符web-app元素下的所有元素,再加上一些web fragment的特定元素。一个应用程序可以有多个Web片段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值