Java编写自己的webserver(一)

反射Reflection: 把java类中的各种结构(方法、属性、构造器、 类名)映射成一个个的Java对象。利用反射技术可以对一个类进 行解剖,反射是框架设计的灵魂

//反射:把java类中的各种结构(方法、属性、构造器、类型)映射成一个个java 对象
public class ReflecTest {
	public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
		//三种方法
		//1.对象.getClass()
		Iphone iphone=new Iphone();
		Class clz=iphone.getClass();
		//2.类.class
		clz=Iphone.class;
		//3.Class.forName("包名.类型")
		clz=Class.forName("server.basic.Iphone");
		
		//创建对象
		Iphone iphone2=(Iphone)clz.newInstance();
		System.out.println(iphone2);
		 
		Iphone iphone3=(Iphone)clz.getConstructor().newInstance();
		System.out.println(iphone3);
	}

}
class Iphone{
	public Iphone(){
		
	}
}

  

XML:Extensible Markup Language,可扩展标记语言,作为数据的一种存储格式或用于 存储软件的参数,程序解析此配置文件,就可以到达不修改代码就能更改程序的目的。

import java.io.IOException;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class XMLTest {
	public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
		// SAX解析
		// 1、获取解析工厂
		SAXParserFactory factory = SAXParserFactory.newInstance();
		// 2、从解析工厂获取解析器
		SAXParser parse = factory.newSAXParser();
		// 3、加载文档 Document 注册处理器
		PersonHandler handler = new PersonHandler();
		// 4、编写处理器
		parse.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("server/basic/p.xml"), handler);

	}
}

class PersonHandler extends DefaultHandler {
	@Override
	public void startDocument() throws SAXException {
		System.out.println("---解析文档开始---");
	}

	@Override
	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
		System.out.println(qName + "--->解析开始");
	}

	@Override
	public void characters(char[] ch, int start, int length) throws SAXException {
		String contents = new String(ch, start, length).trim();
		if (contents.length() > 0) {
			System.out.println("内容为:" + contents);
		}else{
			System.out.println("内容为->"+"空");
		}
	}

	@Override
	public void endElement(String uri, String localName, String qName) throws SAXException {
		System.out.println(qName + "--->解析结束");
	}

	@Override
	public void endDocument() throws SAXException {
		System.out.println("---解析文档结束----");
	}
}

  

猜你喜欢

转载自www.cnblogs.com/sunliyuan/p/12318893.html