Jetty XML配置详解:配置服务器与对象操作

5星 · 超过95%的资源 需积分: 49 45 下载量 201 浏览量 更新于2024-09-13 收藏 94KB PDF 举报
"该PDF文件主要讲解了Jetty服务器如何通过XML配置文件来设定和管理其内部对象,包括服务器实例、属性设置、对象创建以及方法调用等关键操作。" 在Jetty服务器中,XML配置文件是管理和定制服务器行为的重要方式。`jetty.xml` 文件的根元素 `<Configure>` 用于定义需要配置的对象。这个标签有`id`和`class`两个属性,`class`属性是必需的,用于指定要配置的Java类,而`id`属性则是可选的,用于标识和引用配置的对象。如果`id`存在且上下文中已有该ID的对象,则会对此对象进行配置;若不存在,会创建一个新的对象并存储在上下文中。 例如,以下配置创建了一个新的`Server`对象,并设置了端口号: ```xml <Configure id="server" class="org.mortbay.jetty.Server"> <Set name="port">8080</Set> </Configure> ``` 这相当于在Java代码中创建了一个`Server`实例并设置了端口: ```java org.mortbay.jetty.Server server = new org.mortbay.jetty.Server(); server.setPort(8080); ``` 在Jetty的XML配置中,`<Set>`标签用于设置对象的属性。`name`属性指定要设置的属性名,内容是属性值。如果属性名与JavaBeans规范中的`set`方法匹配,如`name="port"`,则会调用`setPort()`方法;如果没有匹配的方法,将直接设置对象的字段。值可以是文本、其他标签的组合,或表达式结果。 ```xml <New class="foo.Bar"> <Set name="xxx">jetty</Set> <Set name="cat"> <New class="foo.Cat"></New> <Call name="doSomething"></Call> </Set> </New> ``` 这段配置创建了一个`foo.Bar`实例,设置了`xxx`属性,并创建了一个`foo.Cat`实例,调用了它的`doSomething()`方法,然后将`Cat`对象设置为`Bar`的`cat`属性。对应的Java代码如下: ```java foo.Bar bar = new foo.Bar(); bar.setXxx("jetty"); foo.Cat temp = new foo.Cat(); temp.doSomething(); bar.setCat(temp); ``` `<Get>`标签与`<Set>`相对,用于获取对象的属性值。如果`name`属性为`xxx`,则尝试调用`getXxx`方法。若方法不存在,可能无法正常工作,因为Jetty的XML配置不会像Java那样抛出异常。 此外,还有`<Call>`、`<New>`、`<SystemProperty>`和`<Ref>`等标签,分别用于调用对象的方法、创建新对象、获取系统属性和引用已经配置过的对象。这些标签可以混合使用,提供了一种灵活的方式来构建和配置Jetty服务器的复杂结构。 Jetty的XML配置文件提供了强大的能力,允许开发者精细控制服务器的行为,通过声明式的方式创建和配置对象,简化了服务器的管理和维护。