文章目录

  • 一、前言
  • 二、XML简介
  • 三、解析XML
  • 四、dom4j解析技术
  • 五、JavaWeb概念
  • 六、部署工程到Tomcat
    • 1、方式一
    • 2、方式二
  • 七、细节对比
  • 八、总结

一、前言

大家好,我是卷心菜,大二学生一枚。最近在复习javaweb,再次学习javaweb,又有了一些新的理解和收获,着手写关于JavaWeb从入门到精通的专栏,扎实web根基,千锤百炼javaweb,为以后的框架打好基础!

那么通过这篇文章,各位小伙伴们可以收获哪些呢?

  • 了解和使用XML,解析XML
  • 部署工程到Tomcat的方式
  • javaweb的核心概念
  • 手托 html 页面到浏览器和在浏览器中输入 http://ip:端 口号/工程名/访问的区别

废话不多说,满满的干货,赶快来看看吧~

二、XML简介

xml是一种可扩展的标记性语言,因此,xml可以像html一样,都可以使用w3c组织制定的dom技术来解析。

xml主要作用有:

  • 用来保存数据,并且这些数据具有自我描述性
  • 作为项目或者模板的配置文件
  • 作为网络传输数据的格式(现在以JSON为主)

三、解析XML

早期 JDK 为我们提供了两种 xml 解析技术: DOM 和 Sax 简介(已经过时,但我们需要知道这两种技术)

dom 解析技术是 W3C 组织制定的,而所有的编程语言都对这个解析技术使用了自己语言的特点进行实现。

Java 对 dom 技术解析标记也做了实现。 sun 公司在 JDK5 版本对 dom 解析技术进行升级:SAX( Simple API for XML ) SAX 解析,它跟 W3C 制定的解析不太一样。它是以类似事件机制通过回调告诉用户当前正在解析的内容。 它是一行一行的读取 xml 文件进行解析的。不会创建大量的 dom 对象。 所以它在解析 xml 的时候,在内存的使用上。和性能上。都优于 Dom 解析。

第三方的解析: jdom 在 dom 基础上进行了封装 、 dom4j 又对 jdom 进行了封装。 pull 主要用在 Android 手机开发,是在跟 sax 非常类似都是事件机制解析 xml 文件。

这个 Dom4j 它是第三方的解析技术。我们需要使用第三方给我们提供好的类库才可以解析 xml 文件。下载地址:dom4j下载地址

四、dom4j解析技术

这里重点介绍使用第三方技术解析xml文件,先创建一个xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!--    xml 声明 version 是版本的意思encoding 是编码 -->
<books><book id="CSY12345"><!--book标签表示一本书,id代表书的编号--><name>从删库到跑路</name><!--name代表书名--><author>李四</author><!--author代表书的作者--><price>88.8</price><!--price代表书的价格--></book><book id="CSY12346"><name>从入门到放弃</name><author>张三</author><price>66.6</price><!--当有特殊字符时,可以使用语句来显示--><!--<one>--><!--<![CDATA[<你><好>]]>--><!--</one>--></book>
</books>

然后创建实体类,构造器之类的就不在这里写了:

public class Book {private String id;private String name;private String author;private Double price;
}

最后写一个测试类,显示测试结果:

public class TestXml {@Testpublic void test01() throws DocumentException {//        先创建一个SAXReader对象SAXReader saxReader = new SAXReader();
//        加载 xml文件创建 Document 对象Document document = saxReader.read("src/book.xml");
//        打印document到控制台,看看结果是否正确System.out.println(document);
//        通过 Document 对象拿到根元素对象Element rootElement = document.getRootElement();System.out.println(rootElement);
//        asXML():将当前元素转换为字符串String s = rootElement.asXML();System.out.println(s);
//        通过根元素.elelemts(标签名);可以返回一个集合,这个集合里放着。所有你指定的标签名的元素对象List<Element> book = rootElement.elements("book");System.out.println(book);for (Element item : book) {//            elementText()获取标签里面的文本内容String name = item.elementText("name");String author = item.elementText("author");String price = item.elementText("price");
//            attributeValue()获取标签的属性值String id = item.attributeValue("id");System.out.println(new Book(id, name, author, Double.parseDouble(price)));}}
}

那么测试结果是什么呢?

五、JavaWeb概念

  • 什么是JavaWeb

javaweb是指所有通过Java语言编写可以通过浏览器访问的程序的总称。JavaWeb是基于请求和响应来开发的。

  • 什么是请求

请求是指客户端给服务器发送数据,叫做请求request

  • 什么是响应

响应是指服务器给客户端回传数据,叫做响应response

  • 请求和响应的关系

请求和响应成对出现,有请求就有响应

六、部署工程到Tomcat

1、方式一

在Tomcat文件中的webapps目录下创建一个工程:

然后就可以将自己写的代码拷贝到新建的工程文件下就可以了

只需要在浏览器中输入访问地址格式如下: http://ip:port/工程名/目录下/文件名

2、方式二

找到Tomcat下的conf目录\Catalina\localhost下,创建一个配置文件:

book.xml配置文件内容如下:

<!-- Context 表示一个工程上下文
path 表示工程的访问路径:/abc docBase 表示你的工程目录在哪里 -->
<Context path="/abc" docBase="D:\book" />

那到底是什么意思呢?也就是说,如果我把刚才建立的book工程文件夹放到别的目录下(D盘),通过方式二,也可以访问自己的工程,不再拘泥于webapps目录了。

访问这个工程的路径如下:http://ip:port/abc/ 就表示访问 D:\book 目录

七、细节对比

到了这里,有一个疑问:手托 html 页面到浏览器和在浏览器中输入 http://ip:端 口号/工程名/访问的区别?

先看看手托的:

通过上图,我们可以发现,它使用的协议是file://协议。file协议表示告诉浏览器直接读取file:协议后面的路径,解析展示在浏览器上即可。

再来看看访问地址:

所使用的协议是http协议,其原理与上面的完全不同。

注意:

当我们在浏览器地址栏中输入访问地址如下: http://ip:port/ ====>>>> 没有工程名的时候,默认访问的是 ROOT 工程
当我们在浏览器地址栏中输入的访问地址如下: http://ip:port/工程名/ ====>>>> 没有资源名,默认访问 index.html 页面

八、总结

乐莫乐兮新相知,很高兴各位小伙伴可以坚持看完这篇关于javaweb的文章。
如果对你有帮助,可以给博主三连支持一下哦~~ 非常感谢, 一起加油,一起进步!

一起复习:请求、响应、JavaWeb核心概念等知识相关推荐

  1. HTTP概念协议报文结构请求响应数据报分析

    文章目录 前言 一.HTTP的概念.特点.工作过程.应用场景 二.HTTP协议报文格式查看方式 三.HTTP协议数据报格式解读 http请求数据报 Part1:首行 关于URL 关于http方法 Ge ...

  2. 一、服务端开发基础(搭建Web服务器、网络基础概念、请求响应流程、配置Apache、静态网站与动态网站)

    一.建立你的第一个网站(目标) 前端开发 最终还是属于 Web 开发 中的一个分支,想要成为一名合格的前端开发人员,就必须要 充分理解Web 的概念. 构建一个专业的网站是一项巨大的工作!对于新手我们 ...

  3. JavaWeb核心知识

    JavaWeb简介 Web:全球广域网,也称为万维网(www),能够通过浏览器访问的网站. JavaWeb:用Java技术来解决相关web互联网领域的技术栈. B/S架构:Browser/Server ...

  4. 2021年大数据ELK(五):Elasticsearch中的核心概念

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Elasticsearch中的核心概念 一.索引 index 二 ...

  5. Servlet基础:接口、类、请求响应、配置、会话追踪、上下文、协作、异常

    10.1 Servlet介绍 ​ Servlet技术是Sun公司提供的一种实现动态网页的解决方案,它是基于Java编程语言的Web服务器端编程技术,主要用于在Web服务器端获得客户端的访问请求信息和动 ...

  6. [k8s] 第一章 十分钟带你理解Kubernetes核心概念

    本章节主要介绍应用程序在服务器上部署方式演变以及kubernetes的概念.组件和工作原理. 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署 ...

  7. 《Spark大数据分析:核心概念、技术及实践》大数据技术一览

    本节书摘来自华章出版社<Spark大数据分析:核心概念.技术及实践>一书中的第1章,第1节,作者穆罕默德·古勒(Mohammed Guller)更多章节内容可以访问云栖社区"华章 ...

  8. Kafka:Kafka核心概念

    1 消息系统简介 1.1 为什么要用消息系统 ? 解耦 各位系统之间通过消息系统这个统一的接口交换数据,无须了解彼此的存在: 冗余 部分消息系统具有消息持久化能力,可规避消息处理前丢失的风险: 灵活性 ...

  9. Redux 核心概念

    http://gaearon.github.io/redux/index.html ,文档在 http://rackt.github.io/redux/index.html .本文不是官方文档的翻译. ...

最新文章

  1. [力扣] 501. 二叉搜索树中的众数
  2. idea在Mybatis的xml里面写sql时,表名、字段、报红问题的解决方法
  3. python怎样实现封装_大牛教你如何封装 Python 代码,实现自动发送邮件只需三行代码...
  4. JSP——JavaBean应用
  5. Django中示例验证码的实现总结
  6. 怎样将Datatable中的数据直接导入到Excel模板上
  7. Android studio 怎么使用已经下载好的Android SDK ?
  8. Spring Boot 2.x 集成 SLF4j + log4j2 日志框架
  9. [译]Selenium —— 怎样使用FireBug和FirePath
  10. 2020年十大数字客户体验(CX)软件平台
  11. 大白话搞懂什么是同步/异步/阻塞/非阻塞
  12. powershell 使用_如何使用PowerShell生成随机名称和电话号码
  13. pytorch第四课
  14. 桌面上 计算机 回收站不见了怎么办,桌面上的回收站图标不见了怎么办
  15. JavaScript简单随机数去重
  16. 将AIR-CAP2702I-H-K9升级成胖AP
  17. Centos7 安装,配置静态IP
  18. java随机生成人名
  19. 未来会有哪些黑科技推动区块链技术的发展
  20. Unix文件、目录及其管理

热门文章

  1. c语言中流,C语言中流控制语句.doc
  2. 微信小店开发之跳转微信商品页接口(第十一课)
  3. 优炫数据库参编中国信通院《数据库发展研究报告(2022年)》
  4. Markdown 编辑器集锦
  5. CUDA error: out of memory
  6. python写圆柱的体积_【用python计算圆柱体的体积资讯】用python计算圆柱体的体积足球知识与常识 - 足球百科 - 599比分...
  7. Altium Designer 修改丝印的颜色
  8. keil mdk打开工程时提示Loading PDSC Debug Description Failed for STMicroelectronics STM32Lxxxxxxx
  9. 泛型爪哇(Generic Java)
  10. electron调用python_Electron中使用Node-ffi调用DLL