本文共 4711 字,大约阅读时间需要 15 分钟。
1.1 上次课内容回顾:
JDBC :* JDBC的概述: * JDBC:Java Database Connectivity* JDBC的API: * Connection:连接. * 获得连接. * 执行事务的管理. * Statement: * 执行SQL语句. * int executeUpdate(String sql); * ResultSet executeQuery(String sql); * boolean execute(String sql); * ResultSet: * getXXX(int idx),getXXX(String name);* JDBC完成CRUD的操作:连接池:* 自定义连接池:(了解) * 增强一个类中的某个方法有几种方式: * 继承: * 控制控制这个类的构造. * 装饰者模式: * 增强的类和被增强类实现相同的接口. * 在增强类中获得被增强的类引用. * 接口中方法过多,增强其中一个方法,其他方法都要重写. * 动态代理: * 被增强的类实现了接口即可. * 编写代码的时候麻烦.* DBCP:* C3P0:DbUtils:工具类:* 使用DBUtils完成CRUD的操作
1.2 案例一:使用XML作为配置文件的方式完成模拟Tomcat.1.2.1 需求:
现在有一套页面,这套页面想被其他人访问到.端口号可以进行修改的-(不修改源码的基础上).1.2.2 分析:1.2.2.1 技术分析:【Java基础的网络编程】【XML的概述】Ø 什么是XML:**** 允许用户自定义标签的!!!Ø XML的作用:* 传输 和 存取数据.* 软件的配置文件.Ø XML的使用:* XML的语法.【XML的语法】Ø XML的基本语法:* XML必须有关闭标签* 区分大小写* 属性需要有引号* 标签必须正确嵌套.Ø XML的文档声明* 文档声明:通常出现在XML的第一行第一列的位置!!!* 写法: * * version :必须的. 使用”1.0” * encoding :字符集. 是使用浏览器打开的时候采用的默认的字符集的编码. * standalone :描述XML文档是否需要依赖其他的文件.Ø XML的注释* Ø XML的元素
代码:
DOM4J的XPath的写法:
/public void demo2() throws Exception{ // 创建解析器:SAXReader reader = new SAXReader();// 解析XML返回Document对象.Document document = reader.read("xml/demo1.xml");/List<Node> list = document.selectNodes("//name");for (Node node : list) { Element element = (Element) node;System.out.println(element.getText());}*/Listlist = document.selectNodes("//person['@id']"); for (Node node : list) { Element element = (Element) node; System.out.println(element.attributeValue("id")); }
}
1.2.3 代码实现:【步骤一】:将基础班的Socket编写的代码复制到工程中.【步骤二】:新建xml.在conf/server.xml【步骤三】:使用DOM4J解析XMLpublic class MyServer {public static void main(String[] args) throws Exception {
// 解析XML:// 创建解析器SAXReader reader = new SAXReader();// 解析XML文档:Document document = reader.read("conf/server.xml");Element element = (Element)document.selectSingleNode("//Connector['@port']");String port = element.attributeValue("port");// ServerSocket 对象可以监听端口ServerSocket serversocket = new ServerSocket(Integer.parseInt(port));while(true) { Socket socket = serversocket.accept(); // 等待客户端的连接请求,一旦有请求过来,就结束阻塞,返回客户端对象//System.out.println(socket.getInetAddress());// 一旦有客户来访问, 就另开一个新线程去提供服务, main线程继续等待下一个客户的连接new Thread(new MyService(socket)).start();}}}1.2.4 总结:1.2.4.1 XML的约束:Ø XML的约束的额概述:DTD的引入方式:
]>
DTD的语法:
元素:
xmlns :xml name sapace .代表当前的文档应用的名称空间.
targetNameSpace :目标名称空间.elementFormDefault :--><schemaxmlns=""targetNamespace=""elementFormDefault="qualified"><!-- 复杂标签 --><element name="persons"><!-- 复杂类型 --><complexType><sequence maxOccurs="unbounded" minOccurs="1"><element name="person"><complexType><sequence><!-- 简单标签 --><element name="name" type="string"></element><element name="age" type="int"></element><element name="sex" type="string"></element></sequence><attribute name="id" type="string" use="required"/></complexType></element></sequence></complexType></element></schema>转载于:https://blog.51cto.com/13517854/2117370