ServletDemo
来源:互联网 发布:网络创业培训体会 编辑:程序博客网 时间:2024/06/10 16:14
Servlet的实例 实现思路是:
定义一个解析XML的Servlet功能实例
主要是实现Servlet中的基本功能
1 首先是建立一个Servlet接口 定义三个功能 主要是定义 init() service() destory() 功能
package com.itheima.servletdemo;/* * 这个是一个模拟servlet接口 * **/public interface Servlet {void init();void service();void destory();}
2 其次建立一个ServletOne实例
用于实现Serlet接口中的抽象方法
package com.itheima.servletdemo.servlet;import com.itheima.servletdemo.Servlet;public class ServletOne implements Servlet{@Overridepublic void init() {// TODO Auto-generated method stubSystem.out.println("Servlet:inti");}@Overridepublic void service() {// TODO Auto-generated method stubSystem.out.println("Servlet:service");}@Overridepublic void destory() {// TODO Auto-generated method stubSystem.out.println("Servlet:destory");}}
定义另外一个实例 servletTow
package com.itheima.servletdemo.servlet;import com.itheima.servletdemo.Servlet;public class ServletTow implements Servlet {@Overridepublic void init() {// TODO Auto-generated method stubSystem.out.println("ServletTow.init()");}@Overridepublic void service() {// TODO Auto-generated method stubSystem.out.println("ServletTow.service()");}@Overridepublic void destory() {// TODO Auto-generated method stubSystem.out.println("ServletTow.destory()");}}
3 写一个用于配置servlet的XML文件web.xml
<?xml version="1.0" encoding="UTF-8"?><wab-app><servlet><servlet-name>Server1</servlet-name><servlet-class>com.itheima.servletdemo.servlet.ServletOne</servlet-class></servlet><servlet><servlet-name>Server2</servlet-name><servlet-class>com.itheima.servletdemo.servlet.ServletTow</servlet-class></servlet></wab-app>
4 由于对XML的解析需要用到DOM4J技术 所以我们建立lib文件夹 用于导入dom4j-1.6.1.jar包 然后通过导入到类中
5 建立一个main类接口
其中为了简便 我们将对xml的解析和对函数的调用直接定义到main主函数中
package com.itheima.servletdemo;import java.io.File;import java.util.List;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class MainClass {public static <SAReader> void main(String[] args) throws Exception {// 解析web.xml xml文件 从文件中 读取servlet-class// 1.获得document对象SAXReader reader = new SAXReader();Document document = reader.read(new File("web.xml"));// 2 获得根元素对象Element rootElement = document.getRootElement();// 3 获得所有的servlet元素List elements = rootElement.elements();// 遍历servlet元素集合for (int i = 0; i < elements.size(); i++) {Element servletElement = (Element) elements.get(i);// 获得所有的element并将获得的element强转Element类// 获取servlet元素中的所有的子元素合集List childElement = servletElement.elements();// 获得每一个子元素 如servlet name 、servlet classfor (int j = 0; j < childElement.size(); j++) {Element child = (Element) childElement.get(j);//System.out.println(child);// 做一个判断 如果字元素是我们想要的那么就运行classNameif ("servlet-class".equals(child.getName())){String className = child.getText();//System.out.println(className);runServlet(className);}}}}private static void runServlet(String className) throws Exception {// 采用反射的方式获取Servlet类 并执行serlet中方法@SuppressWarnings("unchecked")Class<Servlet> clazz = (Class<Servlet>) Class.forName(className);Servlet servlet = clazz.newInstance();/* * ////字节码文件.newInstance * 可以直接new出调用的字节码对象从而直接使用字节码对象中的方法和实例 * * 可以调用获得的方法时要用到上面相同类型的实例对象 * * 通过Class类中的newInstance()方法也可创建类的实例, * 其内部工作原理是先得无参的构造方法,再用构造方法创建实例对象。 */// 下面的方法 会在合适的时候去执行//System.out.println(servlet);servlet.init();servlet.service();servlet.destory();}}
运行结果如下:
ServletOne---:---inti
ServletOne---:---service
ServletOne---:---destory
ServletTow.init()
ServletTow.service()
ServletTow.destory()
0 0
- ServletDemo
- ServletDemo问题及解决
- ServletDemo---模拟天气预报API(JSON数据)
- 微软2014实习生在线测试之K-th string
- freemark指南
- java BIO socket 实例二
- Spring的applicationContext.xml
- ELF文件查看利器之readelf用法
- ServletDemo
- IEDA android编译报cannot merge new index 6xxxx into a non jumbo instruction的一种解决方法
- 制抄录武道一途玄
- VS2010搭建WDK编译环境
- linux命令练习 笔记
- 之又玄其中
- 很多感悟行
- 功路线真元
- 汇聚技巧是