【JavaWeb】Servlet(崔老师版)

news2024/11/18 1:33:34

文章目录

  • 1.概述
    • 1.1 JavaWeb三大组件
    • 1.2 Servlet作用
  • 2.ServletConfig接口
  • 3.Servlet接口
    • 3.1 实现Servlet的方式
    • 3.2 Servlet生命周期
  • 4.HttpServlet抽象类
  • 6.ServletContext
    • 5.1 概述
    • 5.2 获取ServletContext
    • 5.3 JavaWeb四大域对象
    • 5.4 获取应用初始化参数
    • 5.5 ServletContext获取资源

1.概述

1.1 JavaWeb三大组件

  • Servlet
  • 监听器
  • 过滤器

1.2 Servlet作用

  • 接收请求参数
  • 处理请求
  • 完成响应

2.ServletConfig接口

ServletConfig 类从类名上来看,就知道是 Servlet 程序的配置信息类。

Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责创建,我们负责使用。
每个 Servlet 程序创建时,就创建一个对应的 ServletConfig 对 象。
在这里插入图片描述

3.Servlet接口

3.1 实现Servlet的方式

  • 实现javax.servlet.Servlet接口
  • 继承javax.servlet.GenericServlet类
  • 继承javax.servlet.http.HttpServlet类

在这里插入图片描述
(1)servlet接口:直接去实现servlet接口的话,要实现的功能过多,开发不方便
(2)GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象。
将来定义Servlet类时,可以继承GenericServlet,实现service()方法即可。
(3)HttpServlet: 对http协议的一种封装,简化操作,使用方法如下:
① 定义类继承HttpServlet
② 复写doGet/dopost方法

3.2 Servlet生命周期

在这里插入图片描述
注意:
(1)service每一次处理请求都会调用,但是init方法和destroy只在创建或者销毁的时候调用一次。
(2)servlet是单例的,一个servlet类只会对应一个servlet类的对象。但是servlet类可能有多个。
(3)线程不安全的,所以效率高。
(4)servlet类由我们来写,但是servlet对象是由服务器创建的,并且由服务器调用其中的方法。

4.HttpServlet抽象类

在这里插入图片描述
servlet细节:
web.xml文件的继承
在这里插入图片描述

6.ServletContext

一个项目只有一个ServletContext。我们可以在N个Servlet中获取这个唯一的对象,所以使用它可以在Servlet中传递数据。(不让servlet直接传递数据是为了解耦合)

5.1 概述

在这里插入图片描述

5.2 获取ServletContext

ServletConfig
GenericServlet
HttpSession
ServletContextEvent
以上四个类都有方法getServletContext能获取ServletContext对象。

5.3 JavaWeb四大域对象

域对象在servlet中传递数据,所以与对象要有存数据和取数据的功能。

  • PageContext
  • ServletRequest
  • HttpSession
  • ServletContext

在这里插入图片描述

5.4 获取应用初始化参数

在这里插入图片描述

5.5 ServletContext获取资源

ServletContext可以获取web应用下的资源。

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

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

相关文章

【UML建模】时序图(Sequence Diagram)

文章目录 1.概述2.时序图的组成元素2.1.角色(Actor)2.2.实体和对象2.3.生命周期线(Lifeline)2.3.1.激活(Activation)2.3.2.消息(Messages)2.3.3.组合片段(Fragments&…

learn C++ NO.1——命名空间域、输入输出、函数重载

前言 什么是C C(c plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生,最早于1979年由本贾尼斯特劳斯特卢普在AT&T贝尔工作室研发。C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的…

Cache存储系统详解(全相联映射、直接映射、组相联映射、替换策略和性能计算)

1. 存储系统的层次结构 为了解决容量、速度和价格之间的矛盾,把各种不同存储容量,不同存取速度,不同价格的存储器,按照一定的体系结构组织起来,使所存放的程序和数据按层次分布在各存储器中,形成---多层次的…

读书笔记//《数据科学工程实践》

出版时间:2021年11月 副标题:用户行为分析、A/B实验、SQLFlow 作者们是一线互联网企业的数据科学家、数据分析师和算法工程师,主要就职于滴滴、部分就职于腾讯、快手等。 点评:神仙下凡布道。感谢大佬们的分享。本书让我领略了大厂…

小白也能看懂,解读数据中台

不同的企业对数据有不同的需求。企业数据应用不断更新迭代,企业的中台系统也需要不断变化。从数据处理与数据治理两个维度出发,可以设计一个解耦的数据中台体系架构。该数据中台体系架构具有一定的柔性,可按照企业应用需求进行组合&#xff0…

多语言(CurlPHPPHPsdkJAVAC#Python)调用阿里巴巴商品API接口

2月2日消息,《晚点LatePost》独家报道,阿里集团国内批发业务1688近期完成了一系列组织和业务调整。其中,原1688商贸发展中心和产地发展中心合并为1688商家发展中心,由原商贸发展中心总经理王强负责;1688新成立分销供应…

苹果天气应用专利获批,苹果Find My技术改变防丢技术走向

根据美国商标和专利局(USPTO)公示的清单,苹果近日获得了名为“用于管理天气信息的用户界面”专利,编号为 US 11630559 B2。 苹果在专利描述中表示,部分管理天气信息的技术复杂且效率低下,用户需要多次点击…

spring redis Sentinel 哨兵 原理

客户端选择 redis 常用的连接客户端 有三个 Jedis:是老牌的Redis的Java实现客户端,提供了比较全面的Redis命令的支持,Redisson:实现了分布式和可扩展的Java数据结构。Lettuce:高级Redis客户端,用于线程安…

el-table合计功能滚动条层级问题

问题描述 版本:2.15.13 el-table在使用合计功能及固定列功能的同时,由于固定列的结构是固定区域增加了div加上定位,用来盖住下面的内容。当使用了合计功能的时候滚动条的区域在el-table__body-wrapper会导致固定列区域下的滚动条被挡住&…

计算机网络三:运输层

一、运输层 1. 概述 运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信功能,使得不同主机好像直接连在一起一样 运输层协议是在端系统中而不是在路由器中实现的。网络路由器仅作用于网络层分组(即数据报)的网络层字段,而不检查封装在该数据报…

微搭低代码学习之数据展示

低代码平台是一个快速发展的领域,未来有着广阔的发展前景。以下是一些低代码平台未来的发展方向: 1.人工智能和机器学习 随着人工智能和机器学习技术的不断发展,低代码平台将能够更好地利用这些技术来提高应用程序的智能化和自动化水平。例如…

APP渗透—绕过反代理、反证书检测

APP渗透—绕过反代理、反证书检测 1. 前言1.1. 无法获取数据包情况 2. 反代理2.1. 反代理情况2.1.1. 某牛牛反代理2.1.2. 某探反代理 2.2. 绕过反代理2.2.1. Proxifier设置2.2.1.1. 设置代理服务器2.2.1.2. 配置代理规则2.2.1.3. 检测状态 2.2.2. 抓包测试 2.3. 总结 3. 反证书…

用HTML+CSS简单的画一个支付宝页面(超详细)

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:老茶icon 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计…

Pyqt实现合并PDF遇到的问题集合

1.exit code -1073740791报错 pycharm遇到如下报错: “Process finished with exit code -1073740791 (0xC0000409)” 就是遇到这种问题就不知道问题在哪里,有点摸不着头脑 解决措施: 1.点击导航栏“Run”后选择“Edit Configurations” …

Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用

Python是功能强大、免费、开源,实现面向对象的编程语言,在数据处理、科学计算、数学建模、数据挖掘和数据可视化方面具备优异的性能,这些优势使得Python在气象、海洋、地理、气候、水文和生态等地学领域的科研和工程项目中得到广泛应用。可以…

Keil使用 fromelf 生成bin文件

一、语法格式如下: fromelf [options] input_file [options] 选项如下,可以组合使用,两者之间用空格隔开: 二、在Keil中的使用过程 1、配置Output,生成可执行文件 aa即为可执行文件名,后缀为axf。…

十三、51单片机之EEPROM(I2C)

1、EEPROM简介 (1)存储设备类型:ROM、RAM、PROM(可编程ROM)、EPROM(可擦除ROM)、EEPROM(电可擦除ROM)。 (2)为什么需要EEPROM? 某些数据内容我们需要掉电不丢失且在程序运行中可以修改这些数据内容,这就需要用到EEPROM。 (3)EEPROM和flas…

家庭智能开关通断—Homekit智能

智能通断器,也叫开关模块,可以非常方便地接入家中原有开关、插座、灯具、电器的线路中,通过手机App或者语音即可控制电路通断,轻松实现原有家居设备的智能化改造。 随着智能家居概念的普及,越来越多的人想将自己的家改…

Rust之泛型、特性和生命期(一):基本概念

开发环境 Windows 10Rust 1.69.0 VS Code 1.77.3 项目工程 这里继续沿用上次工程rust-demo 泛型、特性和生命期 每种编程语言都有有效处理概念重复的工具。在Rust中,一个这样的工具就是泛型:具体类型或其他属性的抽象替身。我们可以表达泛型的行为或…

IMX6ULL_Pro网卡配置

(15条消息) 【IMX6ULL_Pro板卡学习】配置 VMware 使用双网卡_vmware配置双网卡_爱学习的小莲的博客-CSDN博客https://blog.csdn.net/qq_52201194/article/details/127474352?ops_request_misc%257B%2522request%255Fid%2522%253A%2522168223524716800182730924%2522%252C%2522…