0
点赞
收藏
分享

微信扫一扫

Java编写自己的webserver(一)

贵州谢高低 2022-08-05 阅读 85

反射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("---解析文档结束----");
}
}

  



举报

相关推荐

0 条评论