二、Servlet

news2024/12/29 0:11:52

文章目录

  • 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
     */
    @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 请求重定向

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2143570.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机人工智能前沿进展-大语言模型方向-2024-09-13

计算机人工智能前沿进展-大语言模型方向-2024-09-13 1. OneEdit: A Neural-Symbolic Collaboratively Knowledge Editing System Authors: Ningyu Zhang, Zekun Xi, Yujie Luo, Peng Wang, Bozhong Tian, Yunzhi Yao, Jintian Zhang, Shumin Deng, Mengshu Sun, Lei Liang, Z…

有机水果蔬菜检测系统源码分享

有机水果蔬菜检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

NPM如何切换淘宝镜像进行加速

什么是淘宝镜像NPM? 淘宝镜像NPM和官方NPM的主要区别在于服务器的地理位置和网络访问速度。淘宝镜像NPM是由淘宝团队维护的一个npm镜像源,主要服务于中国大陆用户,提供了一个国内的npm镜像源,地址为 https://registry.npmmirror.…

MySQL 事件调度器用法解析

MySQL 事件调度器用法解析 在日常的数据库运维与开发实践中,自动化执行任务是一项至关重要的需求,它极大地提升了数据库管理的效率和准确性。这些任务可能包括清理不再需要的历史数据以释放存储空间、更新汇总或统计信息以保持数据的新鲜度,…

Java-数据结构-二叉树-习题(三)  ̄へ ̄

文本目录: ❄️一、习题一(前序遍历非递归): ▶ 思路: ▶ 代码: ❄️二、习题二(中序遍历非递归): ▶ 思路: ▶ 代码: ❄️三、习题三(后序遍历非递归): ▶ 思路: …

2025年最新大数据毕业设计选题-基于Spark分析相关

选题思路 回忆学过的知识(Python、Java、Hadoop、Hive、Sqoop、Spark、算法等等。。。) 结合学过的知识确定大的方向 a. 确定技术方向,比如基于Hadoop、基于Hive、基于Spark 等等。。。 b. 确定业务方向,比如民宿分析、电商行为分析、天气分析等等。。。…

[网络层]-IP协议相关特性

IP协议 基本概念 主机 : 配有IP地址,但是不进行路由控制的设备路由器 : 既配有IP地址,又能进行路由控制节点: 主机和路由器的统称 协议头格式 4位版本(version):占四位,用于指定IP协议的版本,例如,使用IPv4,该字段就为44位首部长度: 表示IP协议首部的长度,以32位bit (4字节)…

秋招突击——9/10、9\11——算法练习——携程笔试练习——2024年秋招第一批笔试

文章目录 引言笔试准备2024年秋招研发第一批第一题第二题第二次实现 第三题第四题第五题参考实现 总结 引言 准备全力冲携程,好好做算法,去线下面试!今天就好好做做携程往年的笔试! 笔试准备 2024年秋招研发第一批 第一题 imp…

<<编码>> 第 14 章 反馈与触发器(1)--振荡器 示例电路

继电器振荡器 info::操作说明 无需操作, 保持控制开关常闭以形成振荡 如需停止振荡, 则断开控制开关 注: 要看到灯闪烁的效果, 右上角 “仿真速度” 控制杆应设置为一个较低的位置(靠左侧) 另: 因继电器内部开关跳动动画效果耗时太长, 即便设置为较低的仿真速度也无法观察到开关…

有效的对嵌入式操作系统进行消毒处理

这篇论文的标题是《Effectively Sanitizing Embedded Operating Systems》,作者是 Jianzhong Liu, Yuheng Shen, Yiru Xu, Hao Sun, Heyuan Shi, Yu Jiang。论文主要研究了嵌入式操作系统的安全性问题,并提出了一种名为 EmbSan 的嵌入式系统消毒器&#…

计算机的错误计算(九十六)

摘要 探讨 的计算精度问题。 计算机的错误计算(五十五)与(七十八)分别列出了 IEEE 754-2019 中的一些函数与运算。下面再截图给出其另外3个运算。 例1. 已知 x-0.9999999999966 . 计算 不妨在Python下计算,则有&am…

TI DSP TMS320F280025 Note11:F280025时钟系统

TMS320F280025 F280025时钟系统 ` 文章目录 TMS320F280025 F280025时钟系统TMS32F280025时钟系统框图**时钟系统框图分析**时钟源主内部振荡器(INTOSC2)用内部振荡器(INTOSC1)派生的时钟振荡器时钟(OSCCLK)系统锁相环输出时钟(PLLRAWCLK)设备时钟域系统时钟(PLLSYSCLK)CPU时钟(…

PyTorch 激活函数及非线性变换详解

激活函数是深度学习模型的重要组成部分,它们引入非线性,从而使模型能够更好地拟合复杂的数据模式。本文将详细介绍激活函数的作用、常见类型、经典应用示例,并比较它们的优缺点。 激活函数的作用 激活函数的主要作用是引入非线性变换&#…

12 Java文件处理之写入、读取:IO流(中):高级流(缓冲流、转换流、序列化流和反序列化流、打印流)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、缓冲流1 字节缓冲流(1)BufferedInputStream:字节缓冲输入流构造方法---- BufferedInputStream(InputStream in):创建一个使用默认缓冲区大小的缓冲输入流。---- BufferedInputStream(In…

算法题目复习(0909-0917)

1. 连续子序列和 pdd的算法题&#xff0c;根本不记得怎么做 给一个数组&#xff0c;有正数和负数&#xff0c;算出连续子序列的和最大为多少 int maxSubArraySum(vector<int>& nums) {int maxSoFar nums[0];int maxEndingHere nums[0];for (size_t i 1; i <…

说说几款耳机

从前&#xff0c;大约在戴森推出他们那款奇特的发明——戴森耳机与空气净化器组合一年后&#xff0c;人们仍对这个奇怪的产品感到困惑。这款穿戴式空气净化耳机更像是一个实验&#xff0c;缺乏实际用途。回想起那时的评测&#xff0c;大家一致认为这是有史以来最无意义的产品之…

IDEA 2024.3 EAP新特征早览!

0 前言 IntelliJ IDEA 2024.3 第一个 EAP 版本已发布&#xff0c;提前体验 下一个重大版本的一部分改进。 持续关注 EAP 更新&#xff0c;未来几周内将推出更多 IntelliJ IDEA 新功能。尝试这些新功能&#xff0c;分享您的反馈&#xff0c;共同完善 IDE。 1 AI 助手 1.1 内…

Web3入门指南:从基础概念到实际应用

Web3&#xff0c;即“去中心化的第三代互联网”&#xff0c;正在逐步改变我们对互联网的传统认知。从最初的静态网页&#xff08;Web1.0&#xff09;到互动平台和社交媒体为主的互联网&#xff08;Web2.0&#xff09;&#xff0c;Web3的目标是让用户重新掌握对数据和数字资产的…

比特币10年价格数据(2014-2024)分析(基础)

数据入口&#xff1a;【每周挑战】比特币10年价格数据可视化和量化分析 - Heywhale.com 本数据集包含 2014 - 2024 的比特币美元价格数据&#xff0c;具体包含比特币每日的开盘价、最高价、最低价、收盘价以及成交量等关键信息。数据说明如下&#xff1a; 字段说明Date日期&a…

PMP--一模--解题--151-160

文章目录 11.风险管理--规划风险应对--机会应对策略--上报151、 [单选] 早在执行阶段&#xff0c;项目经理就发现&#xff0c;事业环境因素&#xff08;EEF&#xff09;最近发生的变化将使实施成本大幅减少&#xff0c;而且还将缩减项目进度计划&#xff0c;项目经理该如何应对…