语法
configure.dtd
这个文档类型描述符指明了xml元素和java api之间的简单影射,jetty.xml配置文件的第一行必须引用这个dtd,如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
Java对象通过一连串<New>, <Set>, <Put> 和 <Call>元素来配置。下面的例子让你有个初步的了解:
<Set name="Test">value</Set> == obj.setTest("value");
<Put name="Test">value</Put> == obj.put("Test","value");
<Call name="test"><Arg>value</Arg></Call> == obj.test("value");
<New class="com.acme.MyStuff"><Arg/></New> == new com.acme.MyStuff();
最大努力地使值匹配方法中的参数,明确的类型也要指明。org.mortbay.util.XmlConfiguration类使用configure.dtd描述符来分析Jetty xml文件。
<Configure> 元素
这个根元素用来指定要配置的对象类:
<Configure class="org.mortbay.jetty.Server> . . . </Configure>
另外,如果对象已经存在并声明了一个id,那么他能在配置元素中被参考,如下:
<Configure id="Server" class="org.mortbay.jetty.Server">
配置元素包含 New , Set , Put , Call or Ref 元素。
<Set> 元素
这个元素影射一个对象set方法的调用。名称和可选属性用来选择set方法。如果名称是 xxx,那么setXxx被使用, 后者这个方法找不到。一个Set元素可以包含值文本或者值元素Call, New 和 SystemProperty。如果值类型没有定义,值会从空格截断。如果包含多值元素,在转化成指定类型之前,会作为字符串添加。一个Set附带一个类属性被作为一个静态set方法调用。
- <Set name= "xyz" >
-
. . .
-
</Set>
<Get> 元素
这个元素影射一个对象get方法的调用。属性名字用来选择一个get方法。如果名称是xxx,那么getXxx会被使用,或者找不到。一个Get元素可以包含Set、Put或者Call元素返回的对象。
- <Get name= "xyz" >
- <Set name="xyzMethod" ><New class = "org.mortbay.jetty.xyz" /></Set>
-
</Get>
A Get with a class attribute is treated as a static get method or field.
<Put> 元素
这个元素影射当前对象put方法的调用,这个对象必须应用了Map接口。属性名字用来作为put的键,可选类型属性用来确定值的类型。一个 Put 元素可以包含文本值或者值元素Call, New 和 SystemProperty. 如果没有指定类型,值将被在空格处截断。如果包含多值元素,在转化成指定类型之前被作为字符串看待。
<Put name="admin">admin</Put>
<Call> 元素
这个元素影射当前对象一个方法的任意调用,属性名字和Arg元素用来确定方法。一个Call元素可以包含一系列的Arg元素,跟随一系列作用在新对象上的Set、Put或者Call元素。
<Call name="test">
<Arg>value1</Arg>
<Set name="Test">Value2</Set>
</Call>
等价于:
Object o2 = o1.test("value1");
o2.setTest("value2");
一个带class属性的Call当作一个静态调用:
<Call class="com.acme.Foo" name="setString">
<Arg>somestring</Arg>
</Call>
等价于:
com.acme.Foo.setString("somestring");
<Arg> 元素
这个元素为Call元素定义了一个位置参数,可选类型属性用来确定值的类型。一个Arg元素可以包含文本值或者值元素Call, New 和 SystemProperty。 如果值类型没有指定,值会从空格处截断。如果是多值元素,在转化成特定类型之前,被当作字符串处理。
<Arg><Ref id="Server"/></Arg>
<Arg>./webapps</Arg>
<Arg>org/mortbay/jetty/webapp/webdefault.xml</Arg>
<Arg type="boolean">True</Arg>
<Arg type="boolean">False</Arg>
这里的Ref标签指向了一个以前指定了id参数的对象。
<New> 元素
这个元素生成一个使用Set、Put或者Arg元素作值的一个新对象。类属性决定了新对象的属性,包含的Arg元素用来做新对象构造器的值。
一个New元素可以包含一个惟一的id参数,以后可以用来引用它。一个New元素包含一系列Arg元素,跟随一系列作用在新对象上的Set, Put 和 Call 元素:
- <New id= "myobject" class = "com.acme.MyClass" >
- <Arg>value1</Arg><Set name="Test" >Value2</Set>
-
</New>
-
[code]
-
等价于:
-
[code]
- Object o = new com.acme.MyClass( "value1" );
- o.setTest("value2" );
<Ref> 元素
这个元素引用以前产生的一个对象,一个Ref元素包含一系列作用在参考对象上的Set, Put 和 Call元素:
- <Ref id= "myobject" />
- <Set name="Test" >Value2</Set>
-
</Ref>
另外, Ref元素可以用来做 Arg 和 Set 元素的值:
- <Set name= "someMethod" ><Ref id= "myobj" /></Set>
<Array> 元素
这个元素允许生成一个新的数组作为Set、 Put 或者 Arg 元素的值。属性类型决定了数组类型。
- <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" )};
<Map> 元素
这个元素允许生成一个新的HashMap,使用键、值队:
- <Map>
-
<Entry>
-
<Item>keyName</Item>
- <Item><New class = "java.lang.String" ><Arg>value1</Arg></New></Item>
-
</Entry>
-
</Map>
等价于:
- java.util.Map map = new java.util.HashMap();
- map.put("keyName" , "value1" };
<Item> 元素
这个元素定义了一个Array或者Map条目元素的条目,可选的类型属性确定了值得类型。一个Item 元素可以包含文本值或者值元素Call、New和 SystemProperty.如果值类型没有指定,值将在空格处截断。如果是多值元素,在转化成特定类型之前被当作字符串看待。
- <Item>
- <New class = "org.mortbay.jetty.nio.SelectChannelConnector" >
- <Set name="port" > 8080 </Set>
- <Set name="maxIdleTime" > 30000 </Set>
- <Set name="Acceptors" > 10 </Set>
-
</New>
-
</Item>
<SystemProperty> 元素
这个元素允许JVM系统属性作为Set、Put或者Arg 元素的值。名称属性指明了属性名称,可选的默认参数提供了默认值
This element allows JVM System properties to be retrieved as part of the value of a Set, Put or Arg element. The name attribute specifies the property name and the optional default argument provides a default value.
<SystemProperty name="Test" default="value"/>
等价于:
System.getProperty("Test","value");
英文原文: http://docs.codehaus.org/display/JETTY/Syntax+Reference
分享到:
相关推荐
在Eclipse这个强大的Java开发环境中,配置Jetty服务器来调试Web项目是一项常用的任务。Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器,它允许开发者在本地...记住,理解和掌握配置文件的结构和语法是关键。
- **Jetty XML Configuration语法**:讲解XML配置文件的语法规则。 - **org.mortbay.xml.XmlConfiguration**:介绍使用该类来读取和应用XML配置。 5. **部署Web应用程序** - **静态部署**:将WAR或WEB-INF目录...
配置文件 jetty.xml–Server configuration jetty-web.xml–Web App configuration jetty-env.xml–JNDI configuration webdefault.xml–Pre-web.xml configuration override-web.xml–Post-web.xml configuration ...
`org.mortbay.xml.XmlConfiguration`类提供了读取和解析Jetty配置文件的能力。用户可以通过这个类来加载配置文件,并将配置信息转换成Java对象模型,方便后续的配置管理和使用。 #### 五、在Jetty中部署Web应用程序...
- **2.6.3 相关配置文件**: 包括`jetty.xml`等配置文件。 **2.7 本章小结** Jetty的安装和启动相对简单,但为了更好地利用Jetty的强大功能,还需要对配置文件有深入的理解,并掌握在不同操作系统下的启动控制方法...
动态部署的XML配置文件使用与Jetty XML配置相同的语法,允许灵活控制Web应用的配置,如设置上下文路径、定制Servlet映射、配置过滤器等。通过修改配置文件的最后修改时间,可以触发Jetty重新加载配置,从而实现Web...
3. **配置JSP支持**:在Jetty的配置文件中(如`jetty.xml`),添加JSP相关的模块,例如`jsp`和`jspf`。这样Jetty将在启动时加载JSP引擎。 4. **JSP执行流程**:当请求一个JSP页面时,Jetty会将其转换为对应的...
- 在这个版本中,可能对配置文件的结构或语法进行了改进,以便更好地适应不同场景的需求。 5. **模块化设计**: - Jetty的设计是高度模块化的,用户可以根据需要选择安装必要的组件,从而减少不必要的资源消耗。 ...
在Spring Boot应用中,配置文件起着至关重要的作用,它们允许开发者定义应用程序的行为和环境特定的设置。Spring Boot支持两种主要的全局配置文件格式:`application.properties` 和 `application.yml`。下面我们将...
- **etc目录**: 这个目录通常包含 Solr 的配置文件,如 `jetty.xml`,`jetty-security.xml`,`jetty-realm.properties` 等。这些文件用于设置 Jetty 的安全特性。 - **contexts目录**: 这里存放的是 Solr 的上下文...
配置文件是Jetty管理的关键,书中详细解析了jetty.xml配置文件,介绍了XML配置语法和org.mortbay.xml.XmlConfiguration类的使用,帮助读者理解Jetty的配置机制。此外,书中还涵盖了在Jetty中部署Web应用程序的各种...
7. **Maven或Sbt构建工具**:WVLet可能使用Maven或Sbt进行项目构建,学习这两种工具的使用方法及其配置文件的结构。 8. **单元测试和集成测试**:通过WVLet的测试模块,了解如何编写和执行测试用例,确保代码的质量...
- 配置:通过jetty.xml等配置文件进行服务器配置。 - 部署:支持静态部署、动态热部署以及Servlet 2.5及以上新特性。 6. **Jetty 架构** - Connector:负责网络通信,如HTTP连接的处理。 - Handler:处理HTTP...
问题在于,虽然EL通常可以处理这种表达式,但在某些服务器配置或解析器中,可能要求更严格的语法。 报错信息中的`javax.el.ELException: Error Parsing`进一步证实了EL表达式解析的问题。`PWC6038`错误代码是Apache...
4. **配置服务器**:修改服务器的配置文件,例如Tomcat的`server.xml`,设置端口号、Context路径等。 5. **部署路径**:在服务器的webapps目录下创建项目文件夹,将JSP文件和其他资源放入相应位置。 6. **启动...
1. **Jetty服务器集成**:Jetty是一个轻量级的Java Web服务器和Servlet容器,它允许开发者在Eclipse环境中直接启动、测试和调试Web应用程序,而无需额外配置其他服务器。通过此插件,开发者可以在Eclipse内直接管理...
同时,也需要更新Hive的配置文件,确保与新版本Jetty的兼容性。 总的来说,Hive 3.1.2的安全升级涉及到了大数据处理中的一个重要环节——数据仓库的安全性。通过更新Jetty来修补安全漏洞,可以提升整个Hadoop生态...
在Java开发中,这些文件常用来存储国际化信息或者配置参数。通过特定的编辑器插件,开发者可以获得更好的语法高亮、错误检查和格式化功能,提升工作效率。 6. **OpenExplorer**: - OpenExplorer可能是指一个增强...
- `jetty.xml`是主要的配置文件,用于定义Jetty的行为和组件。 - 使用XML语法进行配置,可以通过`org.mortbay.xml.XmlConfiguration`类加载和解析。 - 配置文件可以动态调整,允许在运行时修改服务器行为。 8. *...
4. **配置环境**:在Web容器的配置文件`conf/server.xml`中,配置Context,指定应用的根目录。例如,在Tomcat中,你可能需要添加类似以下内容: ```xml ``` 5. **部署应用**:将你的JSP项目打包为WAR文件,或者...