设为首页 收藏本站
查看: 616|回复: 0

[经验分享] 第8章WEB08

[复制链接]

尚未签到

发表于 2018-12-3 07:56:06 | 显示全部楼层 |阅读模式
  今日任务
Ø 通过XML作为配置文件完成模拟Tomcat的案例
Ø 安装Tomcat服务器发布一个WEB项目
教学导航
教学目标
了解XML的基本语法,并能够编写正确格式的XML.
了解XML的约束.
掌握XML的解析.
熟练掌握并使用tomcat发布一个web应用
了解HTTP协议及掌握HTTP协议中的常用的头信息.
教学方法
案例驱动法
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:
    http://i2.运维网.com/images/blog/201804/10/a2f0ba9743a3ac540ff4ae527e218b43.png
    http://i2.运维网.com/images/blog/201804/10/9d3e5cabb5269ed6fc282f5e13a51e3e.png
  **** 允许用户自定义标签的!!!
Ø XML的作用:


  • 传输 和 存取数据.
  • 软件的配置文件.
    Ø XML的使用:
  • XML的语法.
    【XML的语法】
    Ø XML的基本语法:
  • XML必须有关闭标签
  • 区分大小写
  • 属性需要有引号
  • 标签必须正确嵌套.
    Ø XML的文档声明
  • 文档声明:通常出现在XML的第一行第一列的位置!!!
  • 写法:



      • version        :必须的. 使用”1.0”
      • encoding        :字符集. 是使用浏览器打开的时候采用的默认的字符集的编码.
      • standalone        :描述XML文档是否需要依赖其他的文件.
        Ø XML的注释



  • Ø XML的元素
  • 元素(标签)的命名规范:
    http://i2.运维网.com/images/blog/201804/10/2b567d02de35d96dec0e9b6f949092c8.png
    ***** 名称中不能包含冒号(:)
    Ø XML的属性
  • 属性的名称规范与元素一致.
    ***** 属性需要使用引号!
    Ø XML的特殊字符和CDATA区
  • XML的特殊字符:
    http://i2.运维网.com/images/blog/201804/10/d74a02f7f3035036cd7f57b42c4c3cb2.png
  • XML的CDATA区:(CDATA:Character Data)

  • 【XML的解析】
    Ø XML的解析:从XML文档中获得想要的数据(通过代码完成的.)
    Ø XML的解析的方式(*****):
  • DOM解析:DOM:Document Object Model.
  • SAX解析:Simple Api for XML.
  • DOM和SAX的区别:
    http://i2.运维网.com/images/blog/201804/10/12a2dd1f7e0fa7a609b619fd71708e43.png
    Ø 针对这两种解析的方式,不同的公司提供了不同的API的实现.
  • JAXP                :SUN公司提供的一套XML的解析的API.
  • JDOM                :开源组织提供了一套XML的解析的API-jdom.
  • DOM4J                :开源组织提供了一套XML的解析的API-dom4j.
  • pull                :主要应用在Android手机端解析XML.
    Ø DOM4J的入门案例步骤:
  • 【步骤一】导入jar包.dom4j-1.6.1.jar
  • 【步骤二】创建解析器
  • 【步骤三】解析文档获得代表文档的Document对象.
  • 【步骤四】获得跟节点.
  • 【步骤五】从跟节点下查找其他的节点.
  • 代码实现:

@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:

        • 一种本地DTD:

        • 一种网络DTD:




    • DTD的语法:

      Ø 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的目录结构】![](http://i2.运维网.com/images/blog/201804/10/13b51a8112838e52c315f8e97bfec566.png"=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
    * 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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-642573-1-1.html 上篇帖子: tomcat class nofound,spring mvc的get请求乱码处理 下篇帖子: Linux下安装jdk及tomcat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表