|
今日任务
Ø 通过XML作为配置文件完成模拟Tomcat的案例
Ø 安装Tomcat服务器发布一个WEB项目
教学导航
教学目标
了解XML的基本语法,并能够编写正确格式的XML.
了解XML的约束.
掌握XML的解析.
熟练掌握并使用tomcat发布一个web应用
了解HTTP协议及掌握HTTP协议中的常用的头信息.
教学方法
案例驱动法
1.1 上次课内容回顾:
JDBC :
**** 允许用户自定义标签的!!!
Ø XML的作用:
@Test
/**
* 获得元素的内容:查询的操作.
*/
public void demo1() throws Exception{
// 创建解析器
SAXReader reader = new SAXReader();
// 解析XML的文档
Document document = reader.read("xml/demo1.xml");
// 获得跟节点
Element root = document.getRootElement();
System.out.println(root.getName());
// 查找跟节点下的子节点. element() elements();
Element pElement = root.element("person"); // 查找的是第一个person元素
// root.elements("person").get(1); // 查找的是第二个person元素
Element nElement = pElement.element("name");
Element aElement = pElement.element("age");
Element sElement = pElement.element("sex");
System.out.println(nElement.getText());
System.out.println(aElement.getText());
System.out.println(sElement.getText());
}
Ø XPath:
* dom4j支持XPath的jar包.
* jaxen-1.1-beta-6.jar
* dom4j的XPath支持的API:
* List document.selectNodes(String xPath);
* Node document.selectSingleNode(String xPath);
* 代码:
@Test
/**
* DOM4J的XPath的写法:
*/
public void demo2() throws Exception{
// 创建解析器:
SAXReader reader = new SAXReader();
// 解析XML返回Document对象.
Document document = reader.read("xml/demo1.xml");
/*List list = document.selectNodes("//name");
for (Node node : list) {
Element element = (Element) node;
System.out.println(element.getText());
}*/
List list = 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解析XML
public 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的约束的额概述:
- 什么是XML的约束 :就是用来约束XML的文档中可以出现哪些标签,不能出现哪些标签,标签中是否有顺序,出现的次数.
- XML的约束 :用来规范XML的写法.
***** XML的约束的种类及区别?
- DTD 和 Schema :
- 区别:
1.DTD语法是自成一体的.Schema语法就是XML的语法.
2.Schema的语法就是XML的语法所以更容易被解析器所解析.
3.Schema支持名称空间.
4.Schema有比DTD更加强大的语义和语法的约束.
Ø DTD的语法 :(了解)
- DTD的引入方式:
- 内部的DTD:
- DTD的语法:
- 元素:
- 元素类型:
- EMPTY
- ANY
- 子元素
- 是否有序: 使用 逗号(,)或者竖线(|)表示.
- 出现的次数:?:零次或一次 +:一次或多次 *:零次或多次
- PCDATA
Ø Schema的语法:(了解)
1.3 案例二:使用Tomcat发布一个WEB项目.1.3.1 需求:
有一个web项目,需要通过tomcat服务器被其他人访问到.
1.3.2 分析:1.3.2.1 技术分析:
【软件的架构】
Ø C/S架构的软件:
* Client / Server 客户端和服务器端的软件. 都是需要在PC端安装的软件. 比如 QQ,迅雷,暴风...
* 优点:效果炫,一部分代码写到客户端(速度快).
* 缺点:服务器端更新,客户端都需要更新.
Ø B/S架构的软件:
* Browser / Server 浏览器端和服务器端的软件. 不需要安装到PC端,只需要有一个浏览器即可. 比如 京东,网银,WEBQQ,WEB迅雷...
* 优点:服务器端更新,客户端浏览器不需要进行更新.
* 缺点:效果不炫,所有的代码运行都在服务器端,导致服务器压力过大.* 效果:使用HTML5,CSS3可以做出很炫效果.* 服务器端压力:搭建服务器的集群.而且还有AJAX技术.
【WEB的资源】
Ø 静态资源:
* HTML,CSS,JS,图片...
Ø 动态资源:
* PHP :
* ASP :
* Servlet/JSP :
【服务器】
Ø 硬件:其实就是一台配置很高的电脑.
Ø 软件:必须在一台电脑上安装服务器软件.这台电脑称为是WEB服务器.
【常见WEB服务器】
Ø Apache :发布PHP的.LAMP:Linux Apache MySQL PHP.
Ø IIS :发布ASP的.
Ø WebSphere :IBM公司研发,收费的大型服务器软件,支持EE的所有的开发规范.
Ø WebLogic :BEA公司研发,收发的大型服务器软件,支持EE的所有的开发规范.
Ø Tomcat :Apache组织研发,免费的小型的服务器软件,支持Servlet/JSP的开发规范.
Ø JBoss :
【WEB动态资源目录结构】
website|-----静态资源|-----WEB-INF|-----web.xml :必须的|-----classes :可选的|-----lib :可选的
1.3.3 案例实现:1.3.3.1 Tomcat的安装:
【下载Tomcat】
http://tomcat.apache.org/download-70.cgi
【安装Tomcat】
解压即可.
【了解Tomcat的目录结构】
* bin :tomcat的执行的文件.
* conf :tomcat的配置文件.
* lib :tomcat运行的需要的jar包.
* logs :tomcat的运行的日志文件.
* temp :tomcat产生临时文件存放的路径.
* webapps :tomcat发布的web项目的路径.
* work :tomcat运行JSP的时候,JSP翻译成Servlet的代码存放的路径.
1.3.3.2 发布一个WEB项目到Tomcat中.
Ø 发布一个WEB工程到Tomcat中共有三种方式:
* 1.直接将工程copy到tomcat/webapps下.
* 2.配置tomcat虚拟路径:
* 3.配置tomcat虚拟路径:
【方式一:直接将项目copy到webapps下】
* 将工程复制到webapps即可.
【方式二:配置tomcat的虚拟路径-不推荐】
* 在tomcat/conf/server.xml文件中进行配置:
* 在标签下配置:*
【方式三:配置tomcat的虚拟路径-推荐】
* 在tomcat/conf/Catalina/localhost/xxx.xml
* 配置
* xxx作为虚拟路径的名称.
1.3.4 总结:1.3.4.1 使用STS工具发布一个WEB工程.
1.3.4.2 Tomcat常见问题:
【没有配置JAVA_HOME引发tomcat一闪消失】
* 一定要配置JAVA_HOME环境变量.
【端口号冲突的问题】
* 一种:将占用端口的应用结束.* netstat -ano* 打开任务管理器结束:
* 二种:修改自身应用的端口号.* tomcat/conf/server.xml
|
|
|