二、Servlet

ops/2024/12/22 19:52:44/

文章目录

  • 1. Servlet技术
    • 1.1 什么是Servlet
    • 1.2 手动实现 Servlet 程序
    • 1.3 url 地址到 Servlet 程序的访问
    • 1.4 Servlet 的生命周期
    • 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 类的作用
    • 6.2 两个输出流的说明
    • 6.3 如何往客户端回传数据
    • 6.4 响应的乱码解决
    • 6.5 请求重定向

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*/@Overridepublic void init(ServletConfig servletConfig) throws ServletException {}/*** 该方法返回容器调用init()方法时传递给Servlet对象的ServletConfig对象,* ServletConfig对象包含了Servlet的初始化参数* @return*/@Overridepublic ServletConfig getServletConfig() {return null;}/*** 专门用来处理请求的响应方法* 这个函数用于处理业务逻辑* 程序员应当把业务逻辑写在这里* 会被调用多次,当用户每访问该servlet时,都会被调用* req用于获得客户端(浏览器(b/s结构))的信息,res用于向客户端(浏览器)返回信息* @param servletRequest* @param servletResponse* @throws ServletException* @throws IOException*/@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("Hello Servlet 被访问了");}/*** 返回一个String类型的字符串,其中包括了关于Servlet的信息,* 例如,作者、版本和版权。该方法返回的应该是纯文本字符串,而不是任何类型的标记(HTML,XML等)* @return*/@Overridepublic String getServletInfo() {return null;}/*** 当容器检测到一个Servlet对象应该从服务中被移除的时候,容器会调用该对象的destroy()方法,* 以便让Servlet对象可以释放它所使用的资源,保存数据到持久存储设备中。* 例如:将内存中的数据保存到数据库中,关闭数据库的连接等。当需要释放内存或容器关闭时,* 容器就会调用Servlet对象的destroy()方法。在Servlet容器调用destroy()方法前,* 如果还有其他的线程正在service()方法中执行,容器会等待这些线程执行完毕或等待服务器设定的超时值到达。* 一旦Servlet对象的destroy()方法被调用,容器不会再把其他的请求发送给该对象。* 如果需要该Servlet再次为客户端服务,容器会重新产生一个Servlet对象来处理客户端的请求。* 在destroy()方法调用后,容器会释放这个Servlet对象,在随后的时候内,该对象会被Java的垃圾收集器所回收*/@Overridepublic 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 请求重定向

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/ops/112454.html

相关文章

ASR(自动语音识别)识别文本效果的打分总结

ASR(自动语音识别)识别文本效果的打分总结 1. 词错误率(WER, Word Error Rate)2. 字正确率(W.Corr, Word Correct)3. 编辑距离(Edit Distance)4. 特定错误率5. 句子错误率(SER, Sentence Error Rate)6. 基于模型的评估方法对于ASR(自动语音识别)识别文本效果的打分…

html限制仅有一个音/视频可播放

html限制仅有一个音/视频可播放 /** 多个音频仅能播放一个 */ function audiosPlay() {const audios document.getElementsByTagName(audio);const videos document.getElementsByTagName(video);function pauseAll() {var self this;[].forEach.call(audios, function (i) …

【leetcode-python】最接近的三数之和

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1: 输入:nums [-1,2,1,-4], target 1 输出:2…

ClickHouse的安装配置+DBeaver远程连接

1、clickhouse的下载: 先去clickhouse官网进行下载,继续往下翻找文档,将DBeaver也下载下来 下载地址:https://packages.clickhouse.com/rpm/stable/ 下载这个四个rpm包 2、上传rmp文件到Linux中 自己创建的一个clickhouse-ins…

IntelliJ IDEA 创建 HTML 项目教程

传送门 IntelliJ IDEA 是 JetBrains 提供的一款强大且多功能的集成开发环境(IDE),不仅可以用于 Java 开发,还支持多种其他编程语言和技术,包括 HTML、CSS 和 JavaScript 等前端开发工具。本文将带你逐步了解如何使用 …

计算机网络:概述 - 性能指标

目录 一. 速率 二. 带宽 三. 吞吐量 四. 时延 五. 时延带宽积 六. 往返时间RTT 七. 利用率 八. 丢包率 此博客介绍计算机网络中的性能指标,性能指标从不同的角度来度量计算机网络的性能。下面介绍几个常用的性能指标: 一. 速率…

Kubernetes 持续集成与交付(CI/CD)

Kubernetes 持续集成与交付(CI/CD)详解 Kubernetes 是目前主流的容器编排平台,而在 DevOps 的实践中,持续集成与持续交付(CI/CD)是自动化软件开发与运维的核心环节。Kubernetes 与 CI/CD 的结合&#xff0…

C++对象拷贝时的优化编译

在现代编译器中,当我们在 C中进行对象的拷贝操作时,编译器并非只是机械地执行逐字节的复制。相反,它会进行优化,避免不必要的拷贝构造等等,这种优化包括“返回值优化”(RVO),“拷贝省…