JavaWeb总结--XML、Servlet

本文涉及的产品
云解析 DNS,旗舰版 1个月
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
简介: JavaWeb总结--XML、Servlet
+关注继续查看

XML

什么是 xml?

  • xml 是可扩展的标记性语言

xml 的作用

  • 1、用来保存数据,而且这些数据具有自我描述性
  • 2、它还可以做为项目或者模块的配置文件3、还可以做为网络传输数据的格式(现在 JSON 为主)

xml 语法

文档声明

语法示例

<?xml version="1.0" encoding="UTF-8"?>
<!-- xml 声明 version 是版本的意思 encoding 是编码 -->
<books> <!-- 这是 xml 注释 -->
    <book id="SN123123413241"> <!-- book 标签描述一本图书 id 属性描述 的是图书 的编号 -->
        <name>java 编程思想</name> <!-- name 标签描述 的是图书 的信息 -->
        <author>jerry</author> <!-- author 单词是作者的意思 ,描述图书作者 -->
        <price>9.9</price> <!-- price 单词是价格,描述的是图书 的价格 -->
    </book>
    <book id="SN12341235123"> <!-- book 标签描述一本图书 id 属性描述 的是图书 的编号 -->
        <name>活着</name> <!-- name 标签描述 的是图书 的信息 -->
        <author>余华</author> <!-- author 单词是作者的意思 ,描述图书作者 -->
        <price>51.5</price><!-- price 单词是价格,描述的是图书 的价格 -->
    </book>
</books>

【Open in browser】

建议Google浏览器安装下XML解析工具, 方便阅读

a1c586dda77f4284bc7c08e04b669528.png

462ed52d351b411d903343f7b8bcf26f.png

xml 属性

xml 的标签属性和 html 的标签属性是非常类似的,属性可以提供元素的额外信息
在标签上可以书写属性:
一个标签上可以书写多个属性。每个属性的值必须使用 引号 引起来。
的规则和标签的书写规则一致。

文本区域(CDATA 区)

CDATA 语法可以告诉 xml 解析器,我 CDATA 里的文本内容,只是纯文本,不需要 xml 语法解析

7921b2bddcd34034b083b7d7cbb9b186.png

dom4j 解析技术

不管是 html 文件还是 xml 文件它们都是标记型文档,都可以使用 w3c 组织制定的 dom 技术来解析。

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

由于 dom4j 它不是 sun 公司的技术,而属于第三方公司的技术,我们需要使用 dom4j 就需要到 dom4j 官网下载 dom4j 的 jar 包

导包

222dd914113e460983903cd50f1a86df.png

获取 document 对象

/**
 * dom4j 获取 Documet 对象
 */
public class XMLTest {
    public static void main(String[] args) throws DocumentException {
        // 要创建一个 Document 对象,需要我们先创建一个 SAXReader 对象
        SAXReader reader = new SAXReader();

        // 这个对象用于读取 xml 文件,然后返回一个 Docume
        Document document = reader.read("E:\\CodeLife\\IdeaProject\\JVM\\chapter18_JavaWeb\\xml\\books.xml");

        // 打印到控制台,看看是否创建成功
        System.out.println(document);//org.dom4j.tree.DefaultDocument@7699a589 [Document: name E:\CodeLife\IdeaProject\JVM\chapter18_JavaWeb\xml\books.xml]

    }
}    

遍历 标签 获取所有标签中的内容

@Test
public void readXML() throws DocumentException {
    // 需要分四步操作:
    // 第一步,通过创建 SAXReader 对象。来读取 xml 文件,获取 Document 对象
    SAXReader reader = new SAXReader();
    Document document = reader.read("E:\\CodeLife\\IdeaProject\\JVM\\chapter18_JavaWeb\\xml\\books.xml");

    // 第二步,通过 Document 对象。拿到 XML 的根元素对象
    Element rootElement = document.getRootElement();

    // 第三步,通过根元素对象。获取所有的 book 标签对象
    List<Element> books = rootElement.elements("book");

    // 第四小,遍历每个 book 标签对象。然后获取到 book 标签对象内的每一个元素,再通过 getText() 方法拿到起始标签和结束标签之间的文本内容
    for (Element book : books) {
        // 测试
        System.out.println(book.asXML());

        // 拿到 book 下面的 name 元素对象
        Element name = book.element("name");

        // 拿到 book 下面的 price 元素对象
        Element price = book.element("price");

        // 拿到 book 下面的 author 元素对象
        Element author = book.element("author");

        // 再通过 getText() 方法拿到起始标签和结束标签之间的文本内容
        System.out.println("书名"+name.getText()+",价格:"+price.getText()+",作者:"+author.getText());

    }

}

控制台打印结果如下

8cf0cc2e4a3c45adada70959c3662245.png

Servlet

什么是 Servlet

1、Servlet 是 JavaEE 规范之一。规范就是接口
2、Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。
3、Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。

手动实现 Servlet 程序

public class HelloServlet implements Servlet {

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("Hello Servlet 被访问了");
    }

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!-- servlet 标签给 Tomcat 配置 Servlet 程序 -->
    <servlet>
        <!--servlet-name 标签 Servlet 程序起一个别名(一般是类名) -->
        <servlet-name>HelloServlet</servlet-name>

        <!--servlet-class 是 Servlet 程序的全类名-->
        <servlet-class>com.jerry.chapter18_javaweb_demo.HelloServlet</servlet-class>
    </servlet>

    <!--servlet-mapping 标签给 servlet 程序配置访问地址-->
    <servlet-mapping>
        <!--servlet-name 标签的作用是告诉服务器,我当前配置的地址给哪个 Servlet 程序使用-->
        <servlet-name>HelloServlet</servlet-name>

        <!--url-pattern 标签配置访问地址 <br/>
        / 斜杠在服务器解析的时候,表示地址为:http://ip:port/工程路径 <br/>
        /hello 表示地址为:http://ip:port/工程路径/hello <br/>
        -->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

Servlet 的生命周期

1、执行 Servlet 构造器方法
2、执行 init 初始化方法
第一、二步,是在第一次访问,的时候创建 Servlet 程序会调用。
3、执行 service 方法
第三步,每次访问都会调用。
4、执行 destroy 销毁方法
第四步,在 web 工程停止的时候调用

ServletConfig 类

作用

1、可以获取 Servlet 程序的别名 servlet-name 的值
2、获取初始化参数 init-param
3、获取 ServletContext 对象

ServletContext 类

什么是 ServletContext

1、ServletContext 是一个接口,它表示 Servlet 上下文对象
2、一个 web 工程,只有一个 ServletContext 对象实例。
3、ServletContext 对象是一个域对象。
4、ServletContext 是在 web 工程部署启动的时候创建。在 web 工程停止的时候销毁。

什么是域对象?

域对象,是可以像 Map 一样存取数据的对象,叫域对象。
这里的域指的是存取数据的操作范围,整个 web 工程。

ServletContext 类的四个作用

1、获取 web.xml 中配置的上下文参数 context-param
2、获取当前的工程路径,格式: /工程路径
3、获取工程部署后在服务器硬盘上的绝对路径
4、像 Map 一样存取数据

HTTP请求

常用请求头的说明

Accept: 表示客户端可以接收的数据类型
Accpet-Languege: 表示客户端可以接收的语言类型
User-Agent: 表示客户端浏览器的信息
Host: 表示请求时的服务器 ip 和端口号

哪些是 GET 请求,哪些是 POST 请求

GET 请求有哪些:
1、form 标签 method=get
2、a 标签
3、link 标签引入 css
4、Script 标签引入 js 文件
5、img 标签引入图片
6、iframe 引入 html 页面
7、在浏览器地址栏中输入地址后敲回车

POST 请求有哪些:
8、form 标签 method=pos

MIME 类型说明

MIME 是 HTTP 协议中数据类型。

MIME 的英文全称是"Multipurpose Internet Mail Extensions" 多功能 Internet 邮件扩充服务。

MIME 类型的格式是“大类型/小 类型”,并与某一种文件的扩展名相对应

–end–

相关文章
|
2天前
|
小程序 应用服务中间件 数据库连接
|
7天前
|
小程序 Java 应用服务中间件
【JavaWeb学习】—Servlet(十三)
【JavaWeb学习】—Servlet(十三)
|
3月前
|
数据安全/隐私保护
JavaWeb用户信息管理系统-创建登录业务的Servlet
JavaWeb用户信息管理系统-创建登录业务的Servlet
16 0
|
3月前
|
安全 Java 应用服务中间件
【JavaWeb】Tomcat底层机制和Servlet运行原理
网络通信:Tomcat使用Java的Socket API来监听特定的端口(通常是8080),接收来自客户端的HTTP请求。 线程池:Tomcat使用线程池来处理并发的请求。当有新的请求到达时,Tomcat会从线程池中获取一个空闲线程来处理该请求,这样可以提高处理效率。 生命周期管理:Tomcat负责管理Servlet和其他Web组件的生命周期,包括初始化、请求处理和销毁等阶段。(init(), run())
|
3月前
|
Java 中间件 应用服务中间件
【JavaWeb】知识总结Ⅶ(Servlet)
什么是 Servlet? Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
|
3月前
|
应用服务中间件 API
JavaWeb 速通Servlet(请求转发和请求重定向)
JavaWeb——HttpServletRequest 和 HttpServletResponse 内容分享。
107 0
|
3月前
|
存储 应用服务中间件 API
JavaWeb 速通Servlet(ServletConfig和ServletContext)
JavaWeb——ServletConfig 和 ServletContext 内容分享。
30 1
|
3月前
|
前端开发 网络协议 Java
JavaWeb 速通Servlet(Servlet和HttpServlet)
JavaWeb——Servlet,HttpServlet及其底层原理 内容分享。
35 0
|
4月前
|
设计模式 容器
JavaWeb开发 Servlet技术详解(五)
JavaWeb开发 Servlet技术详解(五)
|
4月前
|
存储 安全 前端开发
JavaWeb开发 Servlet技术详解(四)
JavaWeb开发 Servlet技术详解(四)