TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
这是jdom-b10中的例子程序。
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Iterator;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
/** *demonstrates how to
* read a Servlet 2.2 Web ArcHive file with JDOM.
* * * @author Brett McLaughlin, Jason Hunter
* @version 1.0 */
- public class WarReader {
-
- public static void main(String[] args) throws IOException, JDOMException {
- if (args.length != 1) {
- System.err.println("Usage: samples.WarReader [web.xml]");
- return;
- }
- String filename = args[0];
- PrintStream out = System.out;
- SAXBuilder builder = new SAXBuilder();
- Document doc = builder.build(new File(filename));
- // Get the root element
- Element root = doc.getRootElement();
- // Print servlet information
- List servlets = root.getChildren("servlet");
- out.println("This WAR has "+ servlets.size() +" registered servlets:");
- Iterator i = servlets.iterator();
- while (i.hasNext()) {
- Element servlet = (Element) i.next();
- out.print(" " + servlet.getChild("servlet-name")
- .getTextTrim() +
- " for " + servlet.getChild("servlet-class")
- .getTextTrim());
- List initParams = servlet.getChildren("init-param");
- out.println(" (it has " + initParams.size() + " init params)");
- }
- // Print security role information
- List securityRoles = root.getChildren("security-role");
- if (securityRoles.size() == 0) {
- out.println("This WAR contains no roles");
- }
- else {
- Element securityRole = (Element) securityRoles.get(0);
- List roleNames = securityRole.getChildren("role-name");
- out.println("This WAR contains " + roleNames.size() + " roles:");
- i = roleNames.iterator();
- while (i.hasNext()) {
- Element e = (Element) i.next();
- out.println(" " + e.getTextTrim());
- }
- }
-
- // Print distributed information (notice this is out of order)
- List distrib = root.getChildren("distributed");
- if (distrib.size() == 0) {
- out.println("This WAR is not distributed");
- } else {
- out.println("This WAR is distributed");
- }
- }
- }
复制代码 程序运行结果: C:java>java WarReader web.xml
This WAR has 2 registered servlets:
snoop for SnoopServlet (it has 0 init params)
file for ViewFile (it has 1 init params)
This WAR contains 3 roles:
manager
director
president
This WAR is distributed C:java> 附:web.xml: <?xml version="1.0" encoding="ISO-8859-1"?> <!--
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
--> <web-app>
<servlet>
<servlet-name> snoop</servlet-name>
<servlet-class> SnoopServlet</servlet-class>
</servlet>
<servlet>
<servlet-name> file</servlet-name>
<servlet-class> ViewFile</servlet-class>
<init-param>
<param-name> initial</param-name>
<param-value> 1000</param-value>
<description> The initial value for the counter <!-- optional --> </description>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name> mv</servlet-name>
<url-pattern> *.wm</url-pattern>
</servlet-mapping> <distributed/> <security-role>
<role-name> manager</role-name>
<role-name> director</role-name>
<role-name> president</role-name>
</security-role>
</web-app> |
|