JavaWeb总结--XML、Servlet

申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址 全文共计5177字,阅读大概需要3分钟
欢迎关注我的个人公众号:不懂开发的程序猿

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解析工具, 方便阅读

在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述

dom4j 解析技术

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

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

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

导包
在这里插入图片描述

获取 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());

    }

}

控制台打印结果如下

在这里插入图片描述

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–

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不懂开发的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值