JavaWeb学习
文章平均质量分 94
个人笔记,仅供参考
shi_zi_183
这个作者很懒,什么都没留下…
展开
-
使用Spring Cloud Sleuth实现微服务跟踪
使用Spring Cloud Sleuth实现微服务跟踪之前已经了解了几种监控微服务的方式,例如使用Spring Boot Actuator监控微服务示例,使用Hystrix监控Hystrix Command等。为什么要实现微服务追踪Peter Deutsch的分布式计算的八大误区。网络可靠延迟为零带宽无限网络绝对安全网络拓扑不会改变必须有一名管理员传输成本为零网络同质化从中可以看到,该文章很多点都在描述一个问题——网络问题。网络常常很脆弱,同时网络资源也是有限的。我们知道,微服原创 2021-11-06 19:07:44 · 369 阅读 · 0 评论 -
使用Spring Cloud Config统一管理微服务配置
使用Spring Cloud Config统一管理微服务配置为什么要统一管理微服务配置对于传统的单体应用,常使用配置文件管理所有配置。例如一个Spring Boot开发的单体应用,可将配置内容放在application.yml文件中。如果需要切换环境,可设置多个Profile,并在启动应用时指定spring.profiles.active={profile}。当然也可借助Profile实现环境切换。然而,在微服务架构中,微服务的配置管理一般有以下需求:集中管理配置。一个使用微服务架构的应用系统可能原创 2021-11-06 00:51:17 · 1153 阅读 · 0 评论 -
使用Zuul构建微服务网关
使用Zuul构建微服务网关为什么要使用微服务网关经过前文的讲解,微服务架构已经初具雏形,但还有一些问题——不同的微服务一般会有不同的网络地址,而外部客户端(例如手机APP)可能需要调用多个服务的接口才能完成一个业务需求。如果让客户端直接与各个微服务通信,会有以下的问题:客户端多次请求不同的微服务,增加了客户端的复杂性存在跨域请求,在一定场景下处理相对复杂认证复杂,每个服务都需要独立认证难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如原创 2021-11-05 01:22:56 · 541 阅读 · 0 评论 -
使用Hystrix实现微服务的容错处理
使用Hystrix实现微服务的容错处理至此,已用Eureka实现类微服务的注册与发现,Ribbon实现了客户端侧的负载均衡,Feign实现了声明式的API调用。实现容错的手段如果服务提供者响应非常缓慢,那么消费者对提供者的请求就会被强制等待,直到提供者响应或超时。在高负载场景下,如果不做任何处理,此类问题可能会导致服务消费者的资源耗尽甚至整个系统的崩溃。例如,曾经发生过一个案例——某电子商务网站在一个黑色星期五发生过载。过多的并发请求,导致用户支付的请求延迟很久都没有响应,在等待很长时间后最终失败。支原创 2021-11-03 09:16:32 · 441 阅读 · 0 评论 -
使用Feign实现声明式REST调用
使用Feign实现声明式REST调用之前示例中是使用RestTemplate实现REST API调用的,代码大致如下: public User findById(@PathVariable Long id){ return this.restTemplate.getForObject("http://microservice-provider-user/"+id,User.class); }由代码可知,我们是使用拼接字符串的方式构造URL的,该URL只有一个参数。然而在现实中原创 2021-11-01 22:40:50 · 488 阅读 · 0 评论 -
使用Ribbon实现客户端侧负载均衡
使用Ribbon实现客户端侧负载均衡在生成环境中,各个微服务都会部署多个实例。那么服务消费者要如何将请求分摊到多个服务者实例上呢?Ribbon简介Ribbon是Netfix发布的负载均衡器,它有助于控制HTTP的TCP客户端的行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机等。当然,我们也可为Ribbon实现自定义的负载均衡算法。在Spring Cloud中,当Ribbon与原创 2021-10-29 23:58:32 · 350 阅读 · 0 评论 -
微服务注册与发现
微服务注册与发现服务发现简介通过前文的讲解,我们知道硬编码提供者地址的方式有不少问题。想要解决这些问题,服务消费者需要一个强大的服务发现机制,服务消费者使用这种机制获取服务提供者的网络信息。不仅如此,即使服务提供者的信息发生变化,服务消费者也无需修改配置文件。...原创 2021-10-28 18:34:22 · 2057 阅读 · 0 评论 -
开始使用Spring Cloud实战微服务
开始使用Spring Cloud实战微服务Spring Cloud 实战前提Spring Cloud不一定适合所有人。学习之前需要了解需要具备什么样的技术能力,以及实战中会使用到哪些工具。技术储备Spring Cloud并不是面向零基础开发人员的,它有一定的学习曲线。语言基础:Spring Cloud是一个基于Java语言的工具套件,所以学习他需要一定的Java基础。当然,Spring Cloud同样也支持使用Scala、Groovy等语言进行开发。Spring Boot:Spring Clo原创 2021-10-26 11:55:37 · 258 阅读 · 0 评论 -
微服务开发框架——Spring Cloud
微服务开发——Spring CloudSpring Cloud简介尽管Spring Cloud带有“Cloud”的字样,但它并不是云计算解决方案,而是在Spring Boot基础上构建的,用于快速构建分布式系统的通用模式的工具集。使用Spring Cloud开发的应用程序非常适合在Docker或者PaaS(例如 Cloud Foundry)上部署,所以又叫作云原生应用(Cloud Native Application)。云原生(Cloud Native)可简单理解为面向云环境的软件架构。Spring原创 2021-10-25 21:06:52 · 409 阅读 · 0 评论 -
微服务架构概述
微服务架构概述微服务架构是当前软件开发领域得技术热点。什么是微服务?它解决了哪些问题?它又具有哪些特点?单体应用架构存在得问题一个归档包(例如war格式)包含所有功能得应用程序,通常称为单体应用。而架构单体应用得方法论,就是单体应用架构。以一个电影售票系统为例。该应用尽管已经进行了模块化,但由于UI和若干业务模块最终都被打包在一个war包中,该war包包含了整个系统所有的业务功能,这样的应用系统称为单体应用。相信很多项目都是从单体应用开始的。单体应用比较容易部署、测试,在项目的初期,单体应用可以很原创 2021-10-25 20:22:50 · 309 阅读 · 0 评论 -
Spring Boot任务管理
Spring Boot任务管理开发Web应用时,多数应用都具备任务调度功能。常用的任务包括异步任务、定时任务和发邮件任务。我们以数据库报表为例看看任务调度如何帮助改善系统设计。报表可能是错综复杂的,用户可能需要报表为例看看任务调度如何帮助改善系统设计。报表可能是错综复杂的,用户可能需要很长时间找到需要的报表数据,此时,我们可以在这个报表应用中添加异步任务减少用户等待时间,从而提高用户体验;除此之外,还可以在报表应用中添加定时任务和邮件任务,以便用户可以安排在任何他们需要的时间定时生成报表,并在Email中原创 2021-10-24 00:19:16 · 2497 阅读 · 0 评论 -
Spring Boot消息服务
Spring Boot消息服务在实际项目开发中,有时候需要与其他系统进行集成完成相关业务功能,这种情况最原始的做法是程序内部相互调用,除此之外,还可以使用消息服务中间件进行业务处理,使用消息服务中间件处理业务能够提升系统的异步通信和扩展解耦能力。Spring Boot对消息服务管理提供了非常好的支持。消息服务概述为什么要使用消息服务在多数应用尤其是分布式系统中,消息服务是不可或缺的重要部分,它使用起来比较简单,同时解决了不少难题,例如异步处理、应用解耦、流量削峰、分布式事务管理等,使用消息服务可以实原创 2021-10-23 00:36:23 · 5073 阅读 · 8 评论 -
Spring Boot安全管理
Spring Boot安全管理实际开发中,一些应用通常要考虑到安全性问题。例如,对于一些重要的操作,有些请求需要用户验明身份后才可以执行,还有一些请求需要用户具有特定权限才可以执行。这样做的意义,不仅可以用来保护项目安全,还可以控制项目访问效果。Spring Security介绍针对项目的安全管理,Spring家族提供了安全框架Spring Security,它是一个基于Spring生态圈的,用于提供安全访问控制解决方案的框架。为了方便Spring Boot项目的安全管理,Spring Boot对Sp原创 2021-10-12 22:36:51 · 2053 阅读 · 3 评论 -
Spring Boot缓存管理
Spring Boot缓存管理缓存是分布式系统中的重要组件,主要解决数据库数据的高并发访问问题。在实际开发中,尤其是用户访问较大的网站,为了提高服务器访问性能、减少数据库的压力、提高用户体验,使用缓存显得尤为重要。Spring Boot对缓存提供了良好的支持。本章将针对Spring Boot的缓存管理进行介绍,并完成Spring Boot与Redis缓存中间件的整合使用。Spring Boot默认缓存管理Spring框架支持透明地向应用程序添加缓存并对缓存进行管理,其管理缓存的核心是将缓存应用于操作数原创 2021-10-02 21:21:35 · 702 阅读 · 1 评论 -
Spring Boot实现Web的常用功能
Spring Boot实现Web的常用功能通常在Web开发中,会涉及静态资源的访问支持、视图解析器的配置、转换器和格式化器的定制、文件上传下载等功能,甚至还需要考虑到与Web服务器相关联的Servlet相关组件的定制。Spring Boot框架支持整合一些常用Web框架,从而实现Web开发,并默认支持Web开发中的一些通用功能。Spring MVC的整合支持为了实现并简化Web开发,Spring Boot为一些常用的Web开发框架提供了整合支持,例如Spring MVC、Spring WebFlux等原创 2021-09-26 19:35:18 · 1472 阅读 · 0 评论 -
Spring Boot视图技术
Spring Boot视图技术在一个Web应用中,通常会采用MVC设计模式实现对应的模型、视图和控制器,其中。视图是用户看到并与之交互的界面。对最初的Web应用来说,视图是由HTML元素组成的静态界面;而后期的Web应用更倾向于使用动态模板技术,从而实现前后端分离和页面的动态数据展示。Spring Boot框架为简化项目的整体开发,提供了一些视图技术支持,并主要推荐整合模板引擎技术实现前端页面的动态化内容。Spring Boot支持的视图技术前端模板引擎技术的出现,使前端开发人员无需关注后端业务的具体原创 2021-09-25 01:02:57 · 1670 阅读 · 2 评论 -
Spring Boot数据访问
Spring Boot数据访问Spring Boot数据访问概述Spring Data是Spring提供了一个用于简化数据库访问、支持云服务的开源框架。它是一个伞形项目,包含了大量关系型数据库及非关系型数据库的数据访问解决方案,其设计目的是使我们可以快速且简单地使用各种数据访问技术。Spring Boot默认采用整合Spring Data地方式统一处理数据访问层,通过添加大量自动配置,引入各种数据访问模板xxxTemplate以及统一的Repository接口,从而达到简化数据访问层的操作。Sprin原创 2021-09-13 21:55:46 · 1025 阅读 · 1 评论 -
一、Spring Boot概论
微服务架构概论传统单体应用架构的问题通常我们所使用的传统单体应用架构都是模块化的设计逻辑,程序在编写完成后会被打包并部署为一个具体的应用,而应用的格式则依赖于相应的应用语言和框架。例如,在网上商城系统中,java web工程通常会被打成WAR包部署在服务器上,而普通的java工程会以JAR包的形式包含在WAR包中。传统单体应用框架的主要优点1、易于开发当前开发工具的功能目标是支持单片应用程序的开发,这对于一个传统的单体应用来说非常容易实现。2、部署简单只需将应用部署为简单的WAR文件即可部署原创 2021-08-18 17:54:13 · 671 阅读 · 0 评论 -
Spring Boot核心配置与注解
Spring Boot核心配置与注解Spring Boot全局配置文件1、application.properties2、application.yaml全局配置文件能对一些默认配置值进行修改。Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件。存放路径:src/main/resource目录或者类路径的/config下。application.properties使用Spring Initializr方式构原创 2021-09-01 17:19:51 · 1828 阅读 · 1 评论 -
Spring MVC 拦截器
拦截器概述Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并做响应的处理。拦截器的定义要使用Spring MVC中的拦截器,就需要对拦截器进行定义和配置。通常拦截器类可以通过两种方式来定义。一种是通过实现HandlerInterceptor接口,或继承HandlerInterceptor接口的实现类(如HandlerInterceptorAdater)来定义;另一种是通过实现WebRequestInterceptor接口或原创 2021-08-30 12:26:10 · 265 阅读 · 0 评论 -
JSON数据交互和RESTful支持
JSON数据交互和RESTful支持SpringMVC在数据绑定的过程中,需要对传递数据的格式和类型进行转换,它既可以转换String类型的数据,也你能够转换JSON等其他类型的数据。JSON数据交互JSON概述JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。它是基于JavaScript的一个子集,使用了C、C++、C#、Java、JavaScript、Perl、Python等其他语言的约束,采用完全独立于编程语言的文本格式来存储和表示数据。原创 2021-08-28 18:14:30 · 1614 阅读 · 0 评论 -
spirng 数据绑定
数据绑定数据绑定介绍在执行程序时,Spring MVC会根据客户端请求参数的不同,将请求消息中的信息以一定的方式转换并绑定到控制器类的方法参数中。这种将请求消息数据与后台方法参数建立连接的过程就是Spring MVC中的数据绑定。在数据绑定过程中,Spring MVC框架会通过数据绑定组件将请求参数串的内容进行类型转换,然后将转换后的值赋给控制器类中方法的形参,这样后台方法就可以正确绑定并获取客户端请求携带的参数了。1)Spring MVC将ServletRequest对象传递给DataBinder原创 2021-08-27 12:03:29 · 229 阅读 · 0 评论 -
Spring MVC的核心类和注解
Spring MVC的核心类和注解在Spring 2.5之前,只能使用实现Controller接口的方式开发一个控制器。在Spring 2.5之后,新增加了基于注解的控制器以及其他一些常用注解,这些注解的使用极大地减少了程序员的开发工作。DispatchServletDispatchServlet的全名是org.springframework.web.servlet.DispatchServlet,它在程序中充当着前端控制器的角色。在使用时,只需将其配置在项目的web.xml文件中 <se原创 2021-08-22 17:39:10 · 815 阅读 · 0 评论 -
Spring MVC入门
Spring MVC入门Spring MVC概述Spring MVC是Spring提供的一个实现了Web MVC设计模式的轻量级Web框架。它与Struts 2框架一样,都属于MVC框架,但其使用和性能等方面比Struts 2更加优异。Spring MVC具有以下特点:1、是Spring框架的一部分,可以方便地利用Spring所提供地其他功能。2、灵活性强,易于与其他框架集成。3、提供了一个前端控制器DispatcherServlet,使开发人员无须额外开发控制器对象。4、可自动绑定用户输入,原创 2021-08-25 23:28:08 · 204 阅读 · 0 评论 -
MyBatis与Spring的整合
MyBatis与Spring的整合整合环境搭建准备所需JAR包1、Spring框架所需的JAR包Spring框架所需要准备的JAR包共10个,其中包括:4个核心模块JAR,AOP开发使用的JAR,JDBC和事务的JAR(其中核心容器依赖的commons-logging的JAR在MyBatis框架的lib包中已经包含,所有这里不必引入),具体如下aopalliance-1.0.jaraspectjweaver-1.8.10.jarspring-aop-4.3.6.RELEASE.jarspri原创 2021-08-19 22:26:16 · 913 阅读 · 2 评论 -
MyBatis的关联映射
MyBatis的关联映射实际开发中,对数据库的操作常常会设计多张表,这在面向对象中就设计了对象与对象之间的关联关系。针对多表之间的操作,MyBatis提供了关联映射,通过关联映射就可以很好地处理对象与对象之间的关联关系。关联关系概述在关系型数据库中,多表之间存在三种关系,分别是一对一、一对多、多对多一对一:在任意一方引入对方主键作为外键。一对多:在"多"的一方,添加"一"的一方的主键作为外键。多对多:产生中间关系表,引入两张表的主键作为外键,两个主键成为联合主键或使用新的字段作为主键。通过数据原创 2021-08-17 19:33:37 · 1372 阅读 · 0 评论 -
动态SQL
动态SQL开发人员在使用JDBC或其他类似的框架进行数据库开发时,通常都要根据需求去手动拼装SQL,这是一个非常麻烦且痛苦的工作,而MyBatis提供了对SQL语句动态组装的功能,恰好解决了这一麻烦工作。动态SQL中的元素动态SQL是MyBatis的强大特性之一,MyBatis 3采用了强大的基于OGNL的表达式来完成动态SQL,它消除了之前版本中需要了解的大多数元素,使用不到原来一半的元素就能完成所需工作。元素说明<if>判断语句,用于单条件分支判断<原创 2021-08-16 19:07:34 · 325 阅读 · 0 评论 -
MyBatis的核心配置
MyBatis的核心配置MyBatis的核心对象SqlSessionFactorySqlSeesionFactory是MyBatis框架中十分重要的对象,它是单个数据库映射关系经过编译后的内存镜像,其主要作用是创建SqlSession。SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象来构建,而SqlSessionFactoryBuilder则可以通过XML配置文件或一个预先定义好的Configuration实例构建出SqlSessionFacto原创 2021-08-15 19:17:49 · 1548 阅读 · 0 评论 -
初识MyBatis
初识MyBatis什么是MyBatisMyBatis是一个支持普通SQL查询、储存过程以及高级映射的持久层框架,它消除了几乎所有的JDBC代码和参数的手动设置以及结果集的检索,并使用简单的XML或注解进行配置和原始映射,用以将接口和Java的POJO(Plain Old Java Object,普通Java对象)映射成数据库中的记录,使得Java开发人员可以使用面向对象的编程思想来操作数据库。MyBatis框架也被称之为ORM(Object/Relational Mapping,即对象关系映射)框架。原创 2021-08-10 13:43:01 · 207 阅读 · 0 评论 -
Spring的事务管理
Spring的事务管理事务管理的核心接口在Spring的所有JAR包中,包含一个名为spring-tx-4.3.6.RELEASE的JAR包,该包就是Spring提供的用于事务管理的依赖包。在该JAR包的org.springframework.transaction包中,我们可以找到3个接口文件1、PlatformTransactionManagerPlatformTransactionManager接口是Spring平台事务管理器,主要用于事务管理。该接口中提供了3个事务操作的方法。1)Tra原创 2021-08-09 16:42:49 · 597 阅读 · 0 评论 -
Spring的数据库开发
Spring的数据库开发Spring JDBCSpring的JDBC模块负责数据库资源管理和错误处理,大大简化了开发人员对数据库的操作,使得开发人员可以从繁琐的数据库中解脱出来,从而将更多精力投入到编写业务逻辑中Spring JdbcTemplate的解析针对数据库的操作,Spring框架提供了JdbcTemplate类,该类是Spring框架数据抽象层的基础,其他更高层次的抽象类却是构建于JdbcTemplate类之上。可以说,JdbcTemplate类是Spring JDBC的核心类。Jdbc原创 2021-08-07 11:28:57 · 1005 阅读 · 1 评论 -
Spring AOP
Spring AOP简介什么是AOPAOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)。它是面向对象编程(OOP)的一种补充,目前已成为一种比较成熟的编程方式。在传统的业务处理代码中,通常都会进行事务处理、日志记录等操作。虽然使用OOP可以通过组合或者继承的方式来达到代码的重用,但如果要实现某个功能(如日志记录),同样的代码仍然会分散到各个方法中。这样,如果想要关闭某个功能,或者对其进行修改,就必须要修改所有的相关方法。这不但增加了开发人员的工作量转载 2021-08-06 19:28:47 · 239 阅读 · 0 评论 -
Spring中的Bean
Spring中的BeanBean的配置Spring可以被看做是一个大型工厂,这个工厂的作用就是生产和管理Spring容器中的Bean。如果想要在项目中使用这个工厂,就需要开发者对Spring的配置文件进行配置。Spring容器支持XML和Properties两种格式的配置文件,在实际开发中,最常使用的就是XML格式的配置文件。这种配置方式通过XML文件来注册并管理Bean之间的依赖关系。接下来本小节将使用XML文件的形式对Bean的属性和定义进行详细的讲解。在Spring中,XML配置文件的根元素是原创 2021-08-05 20:53:40 · 245 阅读 · 0 评论 -
Spring的基本应用
Spring的基本应用Spring概述什么是SpringSpring是由Rod Johnson组织和开发的一个分层的Java SE/EE full-stack(一站式)轻量级开源框架,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为内核,使用基本的JavaBean来完成以前只可能由EJB(Enterprise Java Beans,Java企业Bean)完成的工作,取代了EJB的臃肿、低效的开发模式。S转载 2021-08-04 16:00:51 · 524 阅读 · 0 评论 -
自定义标签
自定义标签在JSP开发中,为了处理某些逻辑功能,难免会在JSP页面书写大量的Java代码,从而导致JSP页面难以维护,可用性较低,为此,JSP从版本1.1开始,支持用户开发自己的标签,即自定义标签。自定义标签入门什么是自定义标签自定义标签可以有效地将HTML代码与Java代码分离,从而使不懂Java编程地HTML设计人员也可以编写出功能强大地JSP页面,JSP规范中定义了多个用于开发自定义标签地接口和类,它们都位于javax.servlet.jsp.tagext包中。所有地标签处理器都需要实现Tj原创 2021-08-03 22:30:12 · 1456 阅读 · 0 评论 -
JSP标准标签库
JSP标准标签库JSP中可以通过Java代码来获取信息,但是过多的Java代码会使JSP页面非常复杂。为此,Sun公司制定了一套标准标签库JSTL。JSTL入门什么是JSTL从JSP1.1规范开始,JSP就支持使用自定义标签,使用自定义标签大大降低了JSP页面的复杂度,同时增强了代码的重用性。为此,许多Web应用厂商都定制了自身应用的标签库,然而同一功能的标签由不同的Web应用厂商制定可能是不同的,这就导致市面上出现了很多功能相同的标签,令网页制作者无从选择,为了解决这个问题,Sun公司制定了一套标原创 2021-08-02 13:43:47 · 479 阅读 · 1 评论 -
EL表达式
EL表达式在JSP开发中,为了获取Servlet域对象中存储的数据,经常需要书写很多Java代码,这样的做法会使JSP页面混乱,难以维护,为此,在JSP2.0规范中提供了EL表达式。EL是Expression Language的缩写,它是一种简单的数据访问语言。初识EL由于EL可以简化JSP页面的书写,因此,在JSP学习中,掌握EL是相当重要的,要使用EL表达式,首先要学习它的语法。EL表达式的语法非常简单,都是以"${“开始,以”}"符号结束。${}需要注意的是,${}中的表达式必须符合EL语原创 2021-08-01 11:03:14 · 1349 阅读 · 0 评论 -
文件上传与下载
文件上传与下载如何实现文件上传在Web应用中,由于大多数文件的上传都是通过表单的形式提交给服务器的,因此,要想在程序中实现文件上传的功能,首先要创建一个用于提交上传文件的表单页面。需要注意的是,为了使Servlet程序可以获取到上传文件的数据,需要将表单页面的method属性设置为post方式,enctype属性设置为multipart/form-data类型,添加文件的input标签类型设置为file类型。当浏览器通过表单提交上传文件时,由于文件数据都附带在HTTP请求消息体中,并且采用MIME类型原创 2021-07-31 12:25:05 · 534 阅读 · 0 评论 -
Servlet事件监听器
Servlet事件监听器Servlet事件监听器可以监听ServletContext、HttpSession、ServletRequest等域对象的创建和销毁过程,以及监听这些域对象属性的修改。Servlet事件监听器概述在监听的过程中会涉及几个重要组成部分:1)事件:用户的一个操作,如单击一个按钮、调用一个方法、创建一个对象。2)事件源:产生事件的对象。3)事件监听器:负责监听发生在事件源上的事件。4)事件处理器:监听器的成员方法,当事件发生的时候会触发对应的处理器事件监听器在进行工作时,转载 2021-07-30 12:23:51 · 2787 阅读 · 1 评论 -
Filter过滤器
Filter过滤器什么是FilterFilter被称为过滤器或拦截器,其基本功能就是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理前后实现了一些特殊功能。当浏览器访问服务器中的目标资源时,会被Filter拦截,在Filter中进行预处理操作,然后再将请求转发给目标资源。当服务器接收到这个请求后会对其进行响应,在服务器进行处理响应的过程中,也需要先将响应结果发送给拦截器,在拦截器中对响应结果进行处理后,才会发送给客户端。其实,Filter过滤器就是一个实现了ja原创 2021-07-29 13:11:01 · 659 阅读 · 0 评论