二、Servlet

1. Servlet技术

1.1 什么是Servlet

在这里插入图片描述

1.2 手动实现 Servlet 程序

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.3 url 地址到 Servlet 程序的访问

在这里插入图片描述

1.4 Servlet 的生命周期

在这里插入图片描述

package com.gyh.servlet;

import javax.servlet.*;
import java.io.IOException;

/**
 * @author Gao YongHao
 * @version 1.0
 */
public class HelloServlet implements Servlet {

    /**
     * 在Servlet实例化后,Servlet容器会调用init()方法,来初始化该对象,
     * 主要是为了让Servlet对象在处理客户请求前可以完成一些初始化的工作。
     * 例如:建立数据库连接,获取配置信息等。
     * 对于每一个Servlet实例,init()方法只能被调用一次。
     * init()方法有一个类型为ServletConfig的参数,
     * Servlet容器通过这个参数向Servlet传递配置信息。
     * Servlet使用ServletConfig对象从Web应用程序的配置信息中获取以名-值对形式提供的初始化参数。
     * 另外,在Servlet中,还可以通过ServletConfig对象获取描述Servlet运行环境的ServletContext对象,
     * 使用该对象,Servlet可以和它的Servlet容器进行通信
     * @param servletConfig
     * @throws ServletException
     */
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    /**
     * 该方法返回容器调用init()方法时传递给Servlet对象的ServletConfig对象,
     * ServletConfig对象包含了Servlet的初始化参数
     * @return
     */
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    /**
     * 专门用来处理请求的响应方法
     * 这个函数用于处理业务逻辑
     * 程序员应当把业务逻辑写在这里
     * 会被调用多次,当用户每访问该servlet时,都会被调用
     * req用于获得客户端(浏览器(b/s结构))的信息,res用于向客户端(浏览器)返回信息
     * @param servletRequest
     * @param servletResponse
     * @throws ServletException
     * @throws IOException
     */
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("Hello Servlet 被访问了");
    }

    /**
     * 返回一个String类型的字符串,其中包括了关于Servlet的信息,
     * 例如,作者、版本和版权。该方法返回的应该是纯文本字符串,而不是任何类型的标记(HTML,XML等)
     * @return
     */
    @Override
    public String getServletInfo() {
        return null;
    }

    /**
     * 当容器检测到一个Servlet对象应该从服务中被移除的时候,容器会调用该对象的destroy()方法,
     * 以便让Servlet对象可以释放它所使用的资源,保存数据到持久存储设备中。
     * 例如:将内存中的数据保存到数据库中,关闭数据库的连接等。当需要释放内存或容器关闭时,
     * 容器就会调用Servlet对象的destroy()方法。在Servlet容器调用destroy()方法前,
     * 如果还有其他的线程正在service()方法中执行,容器会等待这些线程执行完毕或等待服务器设定的超时值到达。
     * 一旦Servlet对象的destroy()方法被调用,容器不会再把其他的请求发送给该对象。
     * 如果需要该Servlet再次为客户端服务,容器会重新产生一个Servlet对象来处理客户端的请求。
     * 在destroy()方法调用后,容器会释放这个Servlet对象,在随后的时候内,该对象会被Java的垃圾收集器所回收
     */
    @Override
    public void destroy() {
        System.out.println("销毁");
    }
}

1.5 GET 和 POST 请求的分发

在这里插入图片描述

1.6 通过继承 HttpServlet 实现 Servlet 程序

在这里插入图片描述

1.7 使用 IDEA 创建 Servlet 程序

在这里插入图片描述

1.8 Servlet 类的继承体系

在这里插入图片描述

2. ServletConfig 类

在这里插入图片描述

2.1 ServletConfig 类的三大作用

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. ServletContext 类

3.1 什么是 ServletContext?

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. HTTP 协议

4.1 什么是 HTTP 协议

在这里插入图片描述

4.2 请求的 HTTP 协议格式

在这里插入图片描述

4.2.1 GET 请求

在这里插入图片描述

在这里插入图片描述

4.2.2 POST

在这里插入图片描述

在这里插入图片描述

4.2.3 常用请求头的说明

在这里插入图片描述

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

在这里插入图片描述

4.3 响应的 HTTP 协议格式

在这里插入图片描述

在这里插入图片描述

4.4 常用的响应码说明

在这里插入图片描述

4.5 MIME 类型说明

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5. HttpServletRequest 类

5.1 HttpServletRequest 类有什么作用

在这里插入图片描述

5.2 HttpServletRequest 类的常用方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.3 如何获取请求参数

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.4 请求的转发

什么是请求的转发?

请求转发是指:服务器收到请求后,从一个资源跳转到另一个资源的操作叫 请求转发
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.5 base 标签的作用

在这里插入图片描述

在这里插入图片描述

5.6 Web 中的相对路径和绝对路径

在这里插入图片描述

5.7 web 中 / 斜杠的不同意义

在这里插入图片描述

6. HttpServletResponse 类

6.1 HttpServletResponse 类的作用

HttpServletResponse 类和 HttpServletRequest 类一样。每次请求进来,Tomcat 服务器都会创建一个 Response 对象传

递给 Servlet 程序去使用。HttpServletRequest 表示请求过来的信息,HttpServletResponse 表示所有响应的信息,

我们如果需要设置返回给客户端的信息,都可以通过 HttpServletResponse 对象来进行设置。

6.2 两个输出流的说明

在这里插入图片描述

在这里插入图片描述

6.3 如何往客户端回传数据

在这里插入图片描述

6.4 响应的乱码解决

在这里插入图片描述

在这里插入图片描述

6.5 请求重定向

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ModelBulider

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

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

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

打赏作者

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

抵扣说明:

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

余额充值