tomcat7的web.xml的xml片段与注解资源的发现处理逻辑

1、metadata-complete 属性

Servlet 3.0 的部署描述文件 web.xml 的顶层标签 <web-app> 有一个 metadata-complete 属性,该属性指定当前的部署描述文件是否是完全的。 如果为true,表示部署描述文件,涵盖了所有的内容(即不支持可插的注解支持。),如果为false,除了解析部署描述文件外,还将对相关jar包中含“声明处理的注解”进行解析。

2、web-fragments是通过jarscanner去扫描,然后对应callback去做文件识别和解析。

这个过程中即使不存在“meta-inf/web-fragment.xml”,那么也会产生空webXML的对象。 but why? 这样相当于于标识了所有jar包,为后面扫描class文件(见第三点)做准备,相当于都有一个base path。 而且,metadata-complete=false时,虽然xml片段可能不存在,但还有可能存在响应的注解的实例。

3、ServletContainerInitailizer与@HandlerTypes注解。

通过service load机制,发现对应资源配置文件中希望add的ServletContainerInitailizer的实现,

然后看该sci的有没声明HandlerTypes的注解(希望被扫描注解),然后add sci到context中,

Context.startInternal时,会执行执行一次sci.onstartup(),参数是所有关联的被筛选的class集合。

时间: 2024-10-24 12:03:27

tomcat7的web.xml的xml片段与注解资源的发现处理逻辑的相关文章

Tomcat7.0+ web.xml问题

Tomcat7+版本的web.xml都加上 <context-param> <param-name>webAppRootKey</param-name> <param-value>项目名(唯一)</param-value> </context-param> Tomcat7.0+ web.xml问题

web.xml &amp; web-fragment.xml (Servlet 2.3, 2.4, 2.5 + 3.0)模板

转自:http://jlcon.iteye.com/blog/890964 web.xml v2.3 Xml代码   <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/w

C++请求web service与xml解析

1. C++解析XML的开源库 在项目中XML的解析使用的是开源的第三方库,TinyXML:这个解析库的模型通过XML文件,然后再内存中生成DOM模型,从而让我们可以很方便的遍历这颗XML树. DOM模型即文档对象模型,是将整个文档分成多个元素(如:书.章.节.段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系.先看一下TinyXML中的主要类和XML文档之间的对应关系,下图是TinyXML中主要class的类图,反应各个类之间的静态关系. TiXmlBase是所有类的基类,TiX

C#之读取web上的xml

一.使用LINQ读取使用Xdocument上的Load方法,可以快速的加载一个XML文档,然后使用LINQ对 加载XML文档进行查询或其他操作,这里仅简单偏历.所以,一旦查询一组元素有返回元素集,就可以使用一个简单的foreach循环访问每一个元素.核心代码如下: /// <summary> /// 使用LINQ读取web上的xml /// </summary> public static void UseLINQ() { string sURL = "http://lo

Web开发技术——XML基础

什么是XML XML和HTML的区别 XML 被设计用来传输和存储数据. HTML 被设计用来显示数据. XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML 轻量级数据交换格式 XML的用途 XML 把数据从 HTML 分离 XML 简化数据共享 XML 简化数据传输 XML 简化平台的变更 XML 使您的数据更有用 XML 用于创建新的 Internet 语言 XHTML - 最新的 HTML 版本 WSDL - 用于描述

hadoop三个配置文件的参数含义说明core-site.xml,hdfs-site.xml,mapred-site.xml

配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,默认下来,这些配置文件都是空的,所以很难知道这些配置文件有哪些配置可以生效,上网找的配置可能因为各个hadoop版本不同,导致无法生效.浏览更多的配置,有两个方法: 1.选择相应版本的hadoop,下载解压后,搜索*.xml,找到core-default.xml,hdfs-default.xml,mapred-default.xml,这些就是默认配置,可以参考这些配置的

【译】Attacking XML with XML External Entity Injection (XXE)

原文链接:Attacking XML with XML External Entity Injection (XXE) XXE:使用XML外部实体注入攻击XML 在XML中,有一种注入外部文件的方式.长久以来,自动XML解析器(在后端使用libxml2)默认启用.因此,使用XML来格式化和传递数据的站点是存在漏洞的. XML经常被这样使用,一些常规的猜想是一些API发起SOAP请求和Javascript / Ajax使用XML传递数据. 建立你的测试平台 对于基于web的攻击,我喜欢在Mutil

JavaScript之Ajax-3 XML语法(XML概述、基本语法)

一.XML概述 XML概述 - XML 是可扩展标记语言(eXtensible Markup Language) - XML 是一种标记语言,类似于HTML - XML 的设计宗旨是传输数据,尔非现实数据 - XML 的标签没有被预定义,需要自行定义 - XML 是W3C的推荐标准 XML用途 - XML 应用于web开发的许多方面,常用于简化数据的存储和共享 - XML 可以将数据从 HTML 中分离出来 - XML 可以简化数据共享 - XML 可以简化数据传输 二.基本语法 XML声明 -

Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 1 -使用FOR XML返回XML结果集

原文:Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 1 -使用FOR XML返回XML结果集 XML 介绍 <CustomersOrders> <Customer custid="1" companyname="Customer NRZBB"> <Order orderid="10692" orderdate="2007-10-03T00:00:00&