XML学习总结——SAXReader解析xml文件,实现反射 代码实例

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: XML学习总结——SAXReader解析xml文件,实现反射 代码实例

XML文件


<?xml version="1.0" encoding="UTF-8" ?> 
- <web-app xmlns="http://www.example.org/web-app_2_5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/web-app_2_5 web-app_2_5.xsd" version="2.5">
- <servlet>
  <servlet-name>MyServlet1</servlet-name> 
  <servlet-class>cn.itheima.web.servlet1.MyServlet1</servlet-class> 
  </servlet>
- <servlet-mapping>
  <servlet-name>MyServlet1</servlet-name> 
  <url-pattern>/myServlet1</url-pattern> 
  </servlet-mapping>
- <servlet>
  <servlet-name>MyServlet2</servlet-name> 
  <servlet-class>cn.itheima.web.servlet1.MyServlet2</servlet-class> 
  </servlet>
- <servlet-mapping>
  <servlet-name>MyServlet2</servlet-name> 
  <url-pattern>/myServlet2</url-pattern> 
  </servlet-mapping>
  </web-app>


接口


public interface IMyServlet {
  public void init();
  public void service();
  public void destory();
}


接口的一个实现类Myservlet1


public class MyServlet1 implements IMyServlet{
  @Override
  public void init() {
    System.out.println("MyServlet1诞生了……");
  }
  @Override
  public void service() {
    System.out.println("MyServlet1开始服务了……");
  }
  @Override
  public void destory() {
    System.out.println("MyServlet1销毁了……");
  }
}


接口的另一个实现类Myservlet2


public class MyServlet2 implements IMyServlet{
  @Override
  public void init() {
    System.out.println("MyServlet2诞生了……");
  }
  @Override
  public void service() {
    System.out.println("MyServlet2开始服务了……");
  }
  @Override
  public void destory() {
    System.out.println("MyServlet2销毁了……");
  }
}


Junit测试类


@Test
  public void testMyServlet(){
    try {
      //1.创建解析器对象
      SAXReader saxReader = new SAXReader();
      //2.使用解析器加载web.xml文件得到document对象
      Document document = saxReader.read("src/cn/itheima/web/servlet1/web.xml");
      //3.获取根元素节点
      Element rootElement = document.getRootElement();
      //4.根据元素名称获取子元素节点
      Element servletElement = rootElement.element("servlet");
      //5.根据元素名称获取servlet-class的文本节点
      String servletClass = servletElement.element("servlet-class").getText();
      //System.out.println(servletClass);
      //6.通过类全名获取字节码文件
      Class clazz = Class.forName(servletClass);
      //7.创建实例对象
      MyServlet1 my = (MyServlet1) clazz.newInstance();
      //8.调用实例对象里面的方法
      my.init();
      my.service();
      my.destory();
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
目录
相关文章
|
26天前
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
93 57
|
16天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
72 8
|
1月前
|
XML 数据格式
HTML 实例解析
本文介绍了HTML中常见元素的使用方法,包括`&lt;p&gt;`、`&lt;body&gt;`和`&lt;html&gt;`等。详细解析了这些元素的结构和作用,并强调了正确使用结束标签的重要性。此外,还提到了空元素的使用及大小写标签的规范。
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
1月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
82 0
|
11天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
39 2
|
1月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
70 0
|
1月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
57 0
|
1月前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
62 0

推荐镜像

更多
下一篇
无影云桌面