jetty xml解析

1 configure

configure为xml的根结点,class指定所配置的对象的类,这个configure会创建一个该类的对象,然后根据该xml对其进行配置。id用来对该对象进行标识,在整个jetty中具有唯一性,相同id的xml configure文件配置的是同一个对象。

2 set

<Set name=xxx type=xxx class=xxx>value</Set>

无论value处是什么元素,其返回值都作为setXxx()函数的参数,即setXxx(value)。

name用来确定该setter的名字,setXxx。

type用来指示value的类型,一般情况下可以省略。

如果有class,那么这就是该类的一个static的调用。

3 get

<Get name=xxx class=xxx>operation</Get>

name用来确定该getter的名字,getXxx。

如果有class,那么也是调用该类的一个static的getter。

Get会返回一个对象A,然后再调用该对象A的operation,可以是set、call、get、put等。

4 调用set、get、put、call的对象

是离它们最近的标签所决定的对象在调用它们,比如如果set在<Get></Get>这个范围内的话,那么这个set就是由getXxx方法返回的对象调用的。类似,如果set是在<Configure></Configure>这个范围的话,那么这个setXxx方法就是由根对象调用的。

5 put

调用put的对象必须要实现Map接口,也就是说,调用put的对象必须是一个key-value pair的map对象。

<Put name=xxx type=xxx>value</Put>

其中name/value就是key-value pair,而type用来指定value的类型。

6 call

<Call name=xxx>

    <Arg>value<Arg/>

    各种其它的标签

</Call>

在当前scope的对象的继承上调用xxx(value)函数,参数是value,由Arg指定,然后返回一个对象。然后调用这个对象的由“各种其它的标签”指定的函数。

7 <Arg>

指定函数的参数。

8 <New>

<New class=xxx>

    <Arg>value</Arg>

    各种其它标签

</New>

创建类xxx的新的对象,构造函数的参数为value,创建新的对象后,调用该对象的“各种其它标签”指定的方法。

9 <Ref>

<Ref refid=xxx></Ref>,返回id xxx指定的对象的引用,用来作为各种value值。

<Ref refid=xxx>

    各种其它标签

</Ref>

这种情况下,先返回id xxx指定的对象的引用,然后再调用该对象的“各种其它标签”指定的方法。

10 SystemProperty和Property

类似于get,获取property。注意,它们两个都是返回一个值。

例如<Property name="jetty.home" default="."/>,去获取jetty.home这个属性的值,并且返回,如果没有,就返回“.”。

这个是可以用于拼接路径的,比如

<set name="war"><Property name="jetty.home" default="."/>/webapps/SpringMVCTest.war</set>

其中“<Property name="jetty.home" default="."/>/webapps/SpringMVCTest.war”构成value,如果jetty.home返回“/home/chao/jetty-home”的话,整个value就应该是“/home/chao/jetty-home/webapps/SpringMVCTest.war”。

11 Array和Item

<Array type="java.lang.String"><Item>value0</Item> <Item><New class="java.lang.String"><Arg>value1</Arg></New></Item> </Array>
等价于
String[] a = new String[] { "value0", new String("value1") };

12 Map、Entry和Item

 

<Map><Entry><Item>keyName</Item> <Item><New class="java.lang.String"><Arg>value1</Arg></New></Item> </Entry> </Map>
等价于
Map m = new HashMap();
m.put("keyName", new String("value1"));



 

转载于:https://www.cnblogs.com/hustdc/p/8366606.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 歌词_请问吧内有大神用JAVA做过桌面歌词吗

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼写了个简单的例子给你&#xff1a;public class TextChangePane extends JComponent implements ActionListener {private static final int CYCLE_TIME 10000;private long startTime 0;private long nowTime 0;private float …

组播相对于单播和广播的优势

组播协议允许将一台主机发送的数据通过网络路由器和交换机复制到多个加入此组组播协议。 与现在广泛使用的单播协议的不同之处在于&#xff0c;一个主机用单播协议向n个主机发送相同的数据时&#xff0c;发送主机需要分别向n个主机发送&#xff0c;共发送n次。一个主机用组播协…

安装nginx及fastdfs-nginx-module

1.先了解背景&#xff1a; FastDFS为什么要结合Nginx以及FastDFS原理&#xff0c;请参考文章&#xff1a; FastDFS为什么要结合Nginx以及FastDFS原理 2.准备工作&#xff1a; 安装安装Nginx所需的环境&#xff0c;参考文献&#xff1a;Ubuntu 18.04.1安装Nginx apt install …

如何让自己的内心强大起来

内心强大的人是指一个人的精神境界达到了一定的级别&#xff01;以至于让人们折服&#xff01; 世界上有这么一种人&#xff0c;似乎特别得到老天爷的偏爱——他总是有自己的理想&#xff0c;并且总是努力去做&#xff0c;最重要的是&#xff0c;老天爷每一次都会帮他取得成功…

什么是软件工程

软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件&#xff0c;把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来&#xff0c;以经济地开发出高质量的软件并有效地维护它&#xff0c;这就是软件…

linux下的静态库与动态库

目录 静态库定义&#xff1a;生成及使用方法&#xff1a;静态库的优缺点动态库定义&#xff1a;生成及使用方法&#xff1a;动态库优缺点&#xff1a;静态库 先说说我们为什么需要库&#xff1f; 当有些代码我们大量会在程序中使用比如&#xff08;scanf&#xff0c;printf等&a…

esrgan_ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks【阅读笔记】

针对SRGAN提出的几点改进&#xff0c;获得了PIRM2018视觉质量的第一名。首先是使用去掉BN层的Residual in Residual Dense Block作为网络的basic unit。并且使用residual scling 和 smaller initialization帮助训练更深的网络。第二点改进是使用了Relativistic Discriminator来…

PostgreSQL Frontend/Backend protocol (通信协议)

标签 PostgreSQL , protocol , proxy , 通信协议 背景 理解PostgreSQL的通信协议可以更好的开发类似SQL代理&#xff0c;SQL中间件&#xff0c;SQL防火墙&#xff0c;连接池等软件。 学习资料与软件 《PostgreSQL 读写分离代理 - Crunchy Proxy(base on golang)》 Postgres on …

启动FastDFS服务,使用python客户端对接fastdfs完成上传测试

1.启动tracker、storage、nginx服务&#xff1a; 启动fdfs_trackerd&#xff1a;sudo service fdfs_trackerd start 启动fdfs_storaged &#xff1a;sudo service fdfs_storaged start 启动Nginx&#xff1a;sudo /usr/local/nginx/sbin/nginx 注&#xff1a;此处给出重启服务…

软件工程方法学

传统方法学 传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务&#xff0c;并使用适当的软件工具或软件工程环境来支持结构化技术的运用。 面向对象方法学 与传统方法相反&#xff0c;面向对象方…

我做项目这些年的经验

1、中国充满大量非常敬业但不够职业的项目经理&#xff0c;不了解这一点&#xff0c;就做不好中国的项目。 2、真正的原因往往都隐藏在表面的理由背后。 3、做项目最高境界是和用户形成长期共生双赢关系。 4、卖功能&#xff0c;卖利益&#xff0c;卖服务&#xff0c;卖价值…

Python学习-终端字体高亮显示

1、采用原生转义字符序列&#xff0c;对Windows有的版本不支持&#xff08;比如win7&#xff09;&#xff0c;完美支持Linux 实现过程&#xff1a; 终端的字符颜色是用转义序列控制的&#xff0c;是文本模式下的系统显示功能&#xff0c;和具体的语言无关。 转义序列是以ESC开头…

Win32-Application的窗口和对话框

Win32 Application&#xff0c;没有基于MFC的类库&#xff0c;而是直接调用C接口来编程。 一、弹出消息窗口 &#xff08;1&#xff09;最简单的&#xff0c;在当前窗口中弹出新窗口。新窗口只有“YES”按钮。 int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstan…

Python面试题总结(4)--数据类型(列表)

1. 已知 AList [1,2,3,1,2]&#xff0c;对 AList 列表元素去重&#xff0c;写出具体过程。 答&#xff1a; AList [1,2,3,1,2] BList set(AList)print(BList) print(list(BList))输出结果&#xff1a; {1, 2, 3} [1, 2, 3]2. 如何实现 “1,2,3” 变成 [“1”,“2”,“3”…

项目团队要以十当一

如何建立起一支高效的团队&#xff0c;并有效的管理团队&#xff0c;一直是IT项目经理津津乐道的话题。任何一个IT项目经理对此都有自己一番不同的见解&#xff0c;根据自己团队特点&#xff0c;项目经理正在用自身独有的管理艺术改变着自己的团队。项目团队要以十当一&#xf…

Centos中配置环境变量

以Java的开发环境Jdk为例。 将jdk-9.0.1放置在/usr/local下&#xff08;UNIX规范&#xff09;&#xff0c;然后我们将jdk配置到环境变量中去。 $ mv jdk-9.0.1 /usr/local $ vim /etc/profile 修改 /etc/profile &#xff0c;最底部加入以下内容 export JAVA_HOME/usr/local/jd…

python面试题总结(5)--数据类型(字典)

1. 字典操作中 del 和 pop 有什么区别 答&#xff1a;del 可以根据索引&#xff08;元素所在位置&#xff09;来删除的&#xff0c;没有返回值。 pop 可以根据索引弹出一个值&#xff0c;然后可以接收它的返回值。 参考一 参考二 2. 按照字典的内的年龄排序 d1 [ {‘name’…

js下载文件 java_[Java教程]使用js实现点击按钮下载文件

[Java教程]使用js实现点击按钮下载文件0 2016-11-11 19:02:54有时候我们在网页上需要增加一个下载按钮&#xff0c;让用户能够点击后下载页面上的资料&#xff0c;那么怎样才能实现功能呢&#xff1f;这里有两种方法&#xff1a;现在需要在页面上添加一个下载按钮&#xff0c;点…

underscore.js源码研究(5)

概述 很早就想研究underscore源码了&#xff0c;虽然underscore.js这个库有些过时了&#xff0c;但是我还是想学习一下库的架构&#xff0c;函数式编程以及常用方法的编写这些方面的内容&#xff0c;又恰好没什么其它要研究的了&#xff0c;所以就了结研究underscore源码这一心…