通过反射,web.xml配置

1.写一个模拟的servlet接口,其中有三个方法init,service,destroy
   写一个实现类重写这三个方法,然后写一个web.xml配置此实现类,写一个测试类,通过反射,给我调用实现类的三个方法
   

package demo04;

import java.lang.reflect.Method;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class demo{

    public static void main(String[] args) throws Exception {
        // 1.获取解析器
        SAXReader sax = new SAXReader();
        // 2.获取文档对象
        Document doc = sax.read("src/demo04/web.xml");
        // 3.获取根元素
        Element root = doc.getRootElement();
        // 4.获取<servlet>元素
        Element servlet = root.element("servlet");
        // 5.servlet-class文本值
        String servletclass = servlet.elementText("servlet-class");
        System.out.println(servletclass);
        Class c =Class.forName(servletclass);
        Object obj =c.newInstance();
        Method init =c.getMethod("init");
        Method service =c.getMethod("service");
        Method destroy =c.getMethod("destroy");
        init.invoke(obj);
        service.invoke(obj);
        destroy.invoke(obj);
    }

}

package demo04;

//接口文件
public interface MyServlet {
    
    public void init();
    
    public void service();
    
    public void destroy();
}
package demo04;
//实现接口,并重写方法
public class MyServletimp implements MyServlet{

    public void init() {
        System.out.println("初始化");
    }

    public void service() {        
        System.out.println("运行");
    }

    public void destroy() {        
        System.out.println("销毁");
    }

}
<?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>
    //  xml文件,web.xml配置此实现类,通过servlet-class找到类路径 <servlet-name>MySerclet</servlet-name> <servlet-class>demo04.MyServletimp</servlet-class> </servlet> <servlet-mapping> <servlet-name>MySerclet</servlet-name> <url-pattern>/MySerclet</url-pattern> </servlet-mapping> </web-app>

猜你喜欢

转载自www.cnblogs.com/Jxliu/p/9253147.html