3.javaweb-Servlet与过滤器

news2024/9/27 11:23:04

javaweb-Servlet与过滤器

文章目录

  • javaweb-Servlet与过滤器
    • 一、Servlet:server applet
      • 二、Servlet做了什么?
      • 三、Servlet是什么?
      • 四、jsp与Servlet关系
      • 五、Servlet API
        • 1.主要Servlet API介绍
        • 2.如何创建Servlet
        • 3.Servlet中主要方法
        • 4.ServletRequest
        • 5.ServletResponse
        • 6.ServletConfig
      • 六、Servlet生命周期
        • Servlet部署与运行
        • Servlet生命周期各个阶段
      • 七、Servlet继承结构
        • 1.Servlet规范接口
        • 2、ServletConfig配置接口
        • 3、GenericServlet抽象类
      • 八、过滤器
      • 1、过滤器概述
        • 2.过滤器的生命周期
        • 过滤器链的使用

一、Servlet:server applet

*概念:运行在服务器端口的小程序

​ *Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则(接口)

​ *将我们自定义一个类,实现Servlet接口,复写方法

在这里插入图片描述

二、Servlet做了什么?

本身不做任何业务处理

只是接收请求并决定调用哪个JavaBean去处理请求

确定用哪个页面来显示处理返回的数据

三、Servlet是什么?

Server+Applet,是一种服务器端的Java应用程序

只有当一个服务器端的程序使用了Servlet API的时候,这个服务端的程序才能称之为Servlet
在这里插入图片描述

四、jsp与Servlet关系

在这里插入图片描述

Servlet是运行在服务器端的Java应用程序

五、Servlet API

1.主要Servlet API介绍

javax.servlet.Servlet接口

所有Java Servlet的基础接口类,规定了必须由Servlet具体类实现的方法集javax.servlet.GenericServlet类

是Servlet的通用版本,是一种与协议无关的Servlet

javax.servlet.http.HttpServlet类

在GenericServlet基础上扩展的基于Http协议的Servlet

2.如何创建Servlet

实现Servlet

接口继承GenericServlet类

继承HttpServlet类

3.Servlet中主要方法

init():Servlet的初始化方法,仅仅会执行一次

service():处理请求和生成响应

destroy():在服务器停止并且程序中的Servlet对象不再使用的时候调用,只执行一次

4.ServletRequest

封装客户的请求信息

作用相当于JSP内置对象request

5.ServletResponse

创建响应信息,将处理结果返回给客户端

作用相当于JSP内置对象response

6.ServletConfig

包含了Servlet的初始化参数信息

六、Servlet生命周期

在这里插入图片描述

  • 简单的叙述生命周期,就是对象在容器中从开始创建到销毁的过程

  • Servlet对象是Servlet容器创建的,生命周期方法都是由容器(目前我们使用的是Tomcat)调用

    Servlet部署与运行

    修改web.xml(部署描述文件)

    添加:把Servlet内部名映射到一个Servlet类名

    添加:把用户访问的URL映射到Servlet的内部名

    注意:与中的必须一致

Servlet生命周期各个阶段

加载和实例化

初始化

处理请求

销毁

生命周期谁来做何时做
实例化Servlet 容器 Servlet 容器启动或者容器检测到客户端请求时
初始化Servlet 容器实例化后,容器调用 Servlet init() 初始化对象
处理请求Servlet 容器得到客户端请求并做出处理时
销毁Servlet 容器当程序中的****Servlet 对象不再使用的时候, 或者 Web 服务器停止运行的时候
生命周期对应方法执行时机执行次数
构造对象构造器第一次请求或者容器启动1
初始化init()构造完毕后或者容器启动1
处理服务service(req, resp).每次请求多次
销毁destory()容器关闭1

七、Servlet继承结构

抽象父类HttpServlet的类图

在这里插入图片描述

1.Servlet规范接口

init方法
容器在构造servlet对象后,自动调用的方法
容器负责实例化一个ServletConfig对象,并在调用该方法时传入
ServletConfig对象可以为Servlet 提供初始化参数
service方法
处理请求并做出响应的服务方法,每次请求产生时由容器调用
容器创建一个ServletRequest对象和ServletResponse对象,容器在调用service方法时,传入这两个对象
destroy方法
Servlet实例在销毁之前调用的方法

public interface Servlet {
    // 初始化方法
    void init(ServletConfig config) throws ServletException;
    // 获取ServletConfig对象
    ServletConfig getServletConfig();
    // service(服务)
    void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;
    // 获取servlet的信息,例如作者、版本和版权。默认返回空字符串
    String getServletInfo();
    // destroy(销毁)
    void destroy();
}

2、ServletConfig配置接口
public interface ServletConfig {
    // 获取Servlet的名称      
    String getServletName();
    // 获取上下文ServletContext对象
    ServletContext getServletContext();
    // 获取初始化参数
    String getInitParameter(String name);
    // 获取初始化的参数列表--可以理解为Iterable迭代去
    Enumeration<String> getInitParameterNames();
}

3、GenericServlet抽象类

omcat创建ServletConfig对象,并且调用init方法,传入config
init和destroy方法都是空实现,子类去实现,调用时机tomcat来把握
ServletConfig对象可以获取此Servlet的初始化参数和全局上下文对象
service核心方法这里依然只是声明,需要子类去重写

八、过滤器

1、过滤器概述

Filter,即过滤器,是JAVAEE技术规范之一,作用目标资源的请求进行过滤的一套技术规范,是Java Web项目中最为实用的技术之一
Filter接口定义了过滤器的开发规范,所有的过滤器都要实现该接口
Filter的常用应用包括但不限于: 登录权限检查,解决网站乱码,过滤敏感字符,日志记录,跨域的处理…

过滤器

是向Web应用程序的请求和响应添加功能的Web服务组件过

滤器可以统一地集中处理请求和响应

使用过滤器技术实现对请求数据的过滤

在这里插入图片描述

2.过滤器的生命周期

实例化

初始化:init()

过滤:doFilter()

销毁:destroy()

  • 过滤器作为web项目的组件之一,和Servlet的生命周期类似,略有不同

  • 没有servlet的load-on-startup的配置,默认就是系统启动立刻构造

    过滤器链的使用
    • 一个web项目中,可以同时定义个过滤器
    • 多个过滤器对同一个资源进行过滤时,工作位置有先后,整体形成一个工作链,称之为过滤器链

在这里插入图片描述

阶段对应方法执行时机执行次数
创建对象构造器web应用启动时1
初始化方法void init(FilterConfig filterConfig)构造完毕1
过滤请求void doFilter(ServletRequest , ServletResponse , FilterChain )每次请求多次
销毁default void destroy()web应用关闭时1次
 | 构造完毕      | 1        |

| 过滤请求 | void doFilter(ServletRequest , ServletResponse , FilterChain ) | 每次请求 | 多次 |
| 销毁 | default void destroy() | web应用关闭时 | 1次 |

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

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

相关文章

使用Docker快速本地部署RSSHub结合内网穿透访问RSS订阅源

文章目录 前言1. Docker 安装2. Docker 部署Rsshub3. 本地访问Rsshub4. Linux安装Cpolar5. 配置公网地址6. 远程访问Rsshub7. 固定Cpolar公网地址8. 固定地址访问 前言 今天和大家分享的是如何在本地快速简单部署Rsshub工具&#xff0c;并结合cpolar内网穿透工具使用公网地址远…

ArcGIS Desktop使用入门(三)常用工具条——拓扑(下篇:地理数据库拓扑)

系列文章目录 ArcGIS Desktop使用入门&#xff08;一&#xff09;软件初认识 ArcGIS Desktop使用入门&#xff08;二&#xff09;常用工具条——标准工具 ArcGIS Desktop使用入门&#xff08;二&#xff09;常用工具条——编辑器 ArcGIS Desktop使用入门&#xff08;二&#x…

mobaxterm、vscode通过跳板机连接服务器

目标服务器&#xff1a;111.111.11.11 跳板机&#xff1a;100.100.10.10 1. mobaxterm通过跳板机连接服务器 1.1 目标服务器信息 1.2 跳板机信息 1.3 登录 点击登录&#xff0c;会输入密码&#xff0c;成功 参考&#xff1a;https://blog.csdn.net/qq_40636486/article/det…

Linux 运维 | 6.从零开始,Shell编程中正则表达式 RegExp 速成指南

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] 0x00 前言概述 在 Linux 运维以及Shell脚本编程中往往会使用到各种文本处理工具&#xff08;例如&#xff0c;文本三剑客 awk、grep、sed&#xff09;以及Shell脚本编程&#xff08;后续作者会在#…

【C语言从不挂科到高绩点】23-指针05-结构体指针【重点知识】

Hello!彦祖们,俺又回来了!!!,继续给大家分享 《C语言从不挂科到高绩点》课程!! 本节将为大家讲解C语言中非常重要的知识点-指针: 本套课程将会从0基础讲解C语言核心技术,适合人群: 大学中开设了C语言课程的同学想要专升本或者考研的同学想要考计算机等级证书的同学想…

CSS在线格式化、美化、压缩工具

网上有不少CSS格式化压缩的工具&#xff0c;但是不少站点有广告干扰&#xff0c;或操作起来不方便&#xff0c;或打开速度比较慢&#xff0c;所以自己定制了这个css格式化压缩的工具&#xff0c;也希望对大家有帮助&#xff0c;提供的这个CSS代码格式化和css在线压缩工具&#…

银发产业新闻 | 饿了么、一龄集团、达因药业、爱奇艺有哪些布局

一周银发产业大事件速览 9月27日 星期五 1 养老服务 国家医保局发布长护险编码规则民政部召开全国养老服务工作推进会议市场监管总局发布《适老家具通用技术要求》中央财政安排3亿元引导资金支持“老年食堂”发展全国老龄委印发《关于深入开展新时代“银龄行动”的指导意见…

行业标准如何立项?具体的步骤有哪些

一、前期准备 1. 明确需求&#xff1a; • 确定所在行业存在哪些问题或不足&#xff0c;需要通过制定行业标准来规范和解决。 • 分析行业发展趋势和市场需求&#xff0c;确保立项的标准具有前瞻性和实用性。 收集资料&#xff1a; 查阅国内外相关行业标准和法律法规&#xff0…

数字单总线输出的工业级温湿度一体传感器-MHT04

温湿度传感芯片 - MHT04&#xff0c;该芯片是数字单总线输出的工业级温湿度一体传感器&#xff0c;采用防尘防水透气的铂金叠层湿敏探头结合高精度电容调理芯片MDC04架构&#xff0c;数字单总线输出&#xff0c;可长距离串联多个节点&#xff0c;适用于仓储、冷链、畜牧、工农业…

SQL 性能调优

什么是 SQL 性能调优 SQL 性能调优是优化 SQL 查询以尽可能高效地运行的过程&#xff0c;从而减少数据库负载并提高整体系统性能。这是通过各种技术实现的&#xff0c;例如分析查询执行计划、优化索引和重写查询以确保最佳执行路径。目标是最大限度地减少执行查询所需的时间和…

写一个算法统计在输入字符串中各个不同字符出现的频度并将结果存入文件(字符串中的合法字符为A-Z这26个字母和0-9这十个数字)

题目分析&#xff0c;一共需要最多需要36个位置的数组&#xff0c;我们把前十个数组位置给0-9个数字字符存放空间&#xff0c;10-36的数组空间给到A-Z的存放 int main() {printf("请输入一串字符串内容,并且以#结束输入\n");char arr[36], ch;//26个大写字符10个数字…

力扣 中等 24.两两交换链表中的节点

文章目录 题目介绍题解 题目介绍 题解 利用25题K个一组反转链表链接 &#xff0c;将k改为2即可。 // 同 25题 K个一组反转链表 class Solution {public ListNode swapPairs(ListNode head) {// 统计节点个数int n 0;for (ListNode cur head; cur ! null; cur cur.next) {n…

【工具分享】Magniber勒索病毒解密工具

前言 Magniber勒索软件首次出现在2017年&#xff0c;最初主要针对韩国的用户。它是通过使用Magniber Exploit Kit (EK)传播的&#xff0c;这款勒索软件迅速成为网络威胁的一部分。尽管最初集中于亚洲地区&#xff0c;Magniber在2021年卷土重来&#xff0c;并开始扩展到全球范围…

扩展 SaaS 业务:2024 年取得成功的基本策略

在不断发展的数字世界中&#xff0c;软件即服务&#xff08;SaaS&#xff09;已成为关键要素&#xff0c;在不同领域提供了无与伦比的实用性和易用性。然而&#xff0c;在这个蓬勃发展的领域取得成功不仅仅需要创新的产品。仅仅具有可行性是不够的。要真正蓬勃发展&#xff0c;…

Redis桌面工具:Tiny RDM

1.Tiny RDM介绍 Tiny RDM&#xff08;Tiny Redis Desktop Manager&#xff09;是一个现代化、轻量级的Redis桌面客户端&#xff0c;支持Linux、Mac和Windows操作系统。它专为开发和运维人员设计&#xff0c;使得与Redis服务器的交互操作更加便捷愉快。Tiny RDM提供了丰富的Red…

基于Hive和Hadoop的保险分析系统

本项目是一个基于大数据技术的保险分析系统&#xff0c;旨在为用户提供全面的汽车保险信息和深入的保险价格分析。系统采用 Hadoop 平台进行大规模数据存储和处理&#xff0c;利用 MapReduce 进行数据分析和处理&#xff0c;通过 Sqoop 实现数据的导入导出&#xff0c;以 Spark…

在 OpenEuler 中配置 KVM 虚拟化环境指南

本指南旨在为读者提供一个详细的步骤说明&#xff0c;帮助大家在 OpenEuler 系统中配置 KVM 虚拟化环境。无论您是初学者还是有一定经验的用户&#xff0c;这份指南都将涵盖从环境准备、安装到虚拟机管理的各个方面&#xff0c;确保您能够顺利地搭建并管理自己的虚拟化平台。 …

FOC电机驱动开发踩坑记录

关键技术 SVPWM电机磁场控制电流采样park变换和Clark变换滑膜观测器&#xff08;无感FOC&#xff09; SVPWM电机磁场控制 SVPWM主要思想是通过精确的对UVW三相电流的分时控制&#xff0c;来控制转子的合成力矩&#xff0c;达到目标方向&#xff0c;常用的是6分区的设计&…

新160个crackme - 066-Andrnalin.3

运行分析 文字是德语&#xff0c;需要破解Key PE分析 VB程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 使用 VB Decompiler 静态分析&#xff0c;发现逻辑如下&#xff1a;1、提取Key每个字符 102、计算后的Key要与"kXy^rO|yXom\kMuOn*"相等 算法分析…

基于单片机的小车行走加温湿度检测系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;采样DHT11温湿度传感器检测温湿度&#xff0c;滑动变阻器连接数码转换器模拟电量采集传感器&#xff0c; 电机采样L298N驱动&#xff0c;各项参数通过LCD1602显示&#x…