3.javaweb-Servlet与过滤器

ops/2024/12/22 18:40:51/

javawebServlet_0">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实例在销毁之前调用的方法

java">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配置接口
java">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核心方法这里依然只是声明,需要子类去重写

java">

八、过滤器

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.ppmy.cn/ops/117253.html

相关文章

零成本玩转企业微信!2024年邮箱功能新升级,速来get√

在这个网络时代&#xff0c;公司聊天和管理得快不快&#xff0c;对公司能不能赢很关键。企业微信是腾讯给公司做的聊天和办公工具&#xff0c;因为功能多、用着方便&#xff0c;很多公司都喜欢用。不过&#xff0c;新用企业微信的公司最想知道的是&#xff1a;用这个要不要花钱…

Spring Boot 点餐系统:高效餐饮服务

第二章关键技术的研究 2.1相关技术 网上点餐系统是在Java MySQL开发环境的基础上开发的。Java是一种服务器端脚本语言&#xff0c;易于学习&#xff0c;实用且面向用户。全球超过35&#xff05;的Java驱动的互联网站点使用Java。MySQL是一个数据库管理系统&#xff0c;因为它的…

近万字深入讲解iOS常见锁及线程安全

什么是锁&#xff1f; 在程序中&#xff0c;当多个任务&#xff08;或线程&#xff09;同时访问同一个资源时&#xff0c;比如多个操作同时修改一份数据&#xff0c;可能会导致数据不一致。这时候&#xff0c;我们需要“锁”来确保同一时间只有一个任务能够操作这个数据&#…

ELFK日志分析平台,架构和通信

整个架构&#xff0c;加上跳板机&#xff0c;总共12台机器 技术方案&#xff1a; 1. 配置nfs服务器&#xff0c;为web集群提供共享网络文件系统 # 部署 NFS 服务 [rootnfs ~]# dnf install -y nfs-utils [rootnfs ~]# vim /etc/exports /var/webroot 192.168.1.0/24(rw,…

STM32篇:STM32CubeMX的安装

一.介绍与安装 1.作用 通过界面的方式&#xff0c;快速生成工程文件。 2.下载 官网 https://www.st.com/zh/development-tools/stm32cubemx.html#overview 3.安装 一路下一步&#xff0c;建议不要安装在C盘 4.配置 更新固件包位置&#xff08;比较大&#xff0c;默认在…

SpringBoot 项目打成 jar 后加载外部的配置文件

Spring Boot应用最大的特点就是使用配置来代替编码&#xff0c;很多时候启用某一个功能只需要引入相关的starter&#xff0c;再加入对应的配置项就可以了&#xff0c;例如数据源&#xff0c;安全性&#xff0c;中间件等等。对于单个项目&#xff0c;我们一般会把配置项放到appl…

Apache Iceberg 与 Spark整合-使用教程(Iceberg 官方文档解析)

官方文档链接&#xff08;Spark整合Iceberg&#xff09; 1.Getting Started Spark 目前是进行 Iceberg 操作最丰富的计算引擎。官方建议从 Spark 开始&#xff0c;以理解 Iceberg 的概念和功能。 The latest version of Iceberg is 1.6.1.&#xff08;2024年9月24日11:45:55&…

php入门

PHP&#xff08;Hypertext Preprocessor&#xff0c;超文本预处理器&#xff09;是一种广泛使用的开源服务器端脚本语言&#xff0c;特别适合用于Web开发&#xff0c;可以嵌入到HTML中。它主要用于创建动态网页&#xff0c;处理表单&#xff0c;管理会话和发送电子邮件等。下面…