IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 过滤器,拦截器,监听器,Servlet-----杂烩 -> 正文阅读

[Java知识库]过滤器,拦截器,监听器,Servlet-----杂烩

JavaWeb三大组件:Filter过滤器、Listener监听器、Servlet程序

Servlet

Sevrlet是基于HTTP协议? 运行在Tomcat容器中的按照servlet规范编写的一个Java类(Java程序/Web组件)拥有java的优点,编写一个Servlet就相当于写一个类,然后被编译为字节码文件,被动态的加载Tomcat服务器中运行,主要作用是接受请求和响应数据,SpringMVC的请求流程中的DispatcherServlet前端控制器是它的一个实现类。

Sevrlet接口定义的方法:

1.init(),初始化servlet对象,完成一些初始化工作。
它是由servlet容器控制的,该方法只能被调用一次。
2.service(),接受客户端请求对象,执行业务操作,利用响应对象响应客户端请求。
3.destroy(),当容器监测到一个servlet从服务中被移除时,容器调用该方法,释放资源。
4.getServletConfig(),ServletConfig是容器向servlet传递参数的载体。
5.getServletInfo(),获取servlet相关信息。

生命周期:

1.当客户端第一次请求Servlet时,Servlet被加载到内存中,容器会创建Servlet实例,并调用其init()方法进行初始化工作
2.容器创建请求对象和响应对象,然后调用Servlet的service()方法为客户端提供服务。
3.当Servlet不再被需要时,容器调用Servlet的destory()方法将Servlet实例销毁。

Filter过滤器

Filter过滤器是对Sevrlet容器请求和响应进行逻辑预处理的一个程序(接口),所以它的位置是在Servlet容器之前,主要作用是拦截请求和过滤响应,进行逻辑判断,例如权用户是否已经登陆、有没有权限访问该页面,对请求和响应的方法进行增强等等,一个Web容器中可以由多个Filter构成一个过滤链(FilterChain)

服务器启动时就创建该filter对象,服务器关闭时filter销毁。

完整流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter在对服务器响应进行后处理

生命周期:

?init(Filterconfig):代表filter对象初始化方法 filter对象创建时执行

?doFilter(ServletRequest,ServletResponse,FilterChain):代表filter执行过滤的核心方法,如果某资源在已经被配置到这个filter进行过滤的话,那么每次访问这个资源都会执行doFilter方法

destory():代表是filter销毁方法 当filter对象销毁时执行该方法

Listener监听器

Listener监听器是一个实现了特定接口的Java类;专门用于对特定域对象身上发生的事件或状态改变进行监听和相应处理,当被监视的对象发生创建或销毁,属性发生变化时,立即采取相应的行动

域对象:在某个范围之间,可以为Sevrlet之间提供共享数据的对象

三大域对象:

ServletContext:Sevrlet上下文。全局作用域对象,一个全局的储存信息的空间,服务器开始就存在,服务器关闭才释放,在Tomcat运行期间,可以为当前工程中所有的Sevrlet提供共享数据

HttpSession:会话作用域对象,由JavaWeb提供的,用来会话跟踪的类。在一次会话过程中,为本次参与会话的Sevrlet提供共享数据

ServletRequest:请求作用域对象,在一次请求过程中,为本次参与请求的所有Sevrlet提供共享数据

域对象的属性操作:

setAttribute()---设置对象的属性,如果不存在此属性,则会创建此属性。

getAttribute()---通过元素节点的属性名称获取属性的值。

removeAttribute()---删除指定的属性。

监听器主要就是监听这三个域对象的创建和销毁和属性的变化用于在事件发生前、发生后做一些必要的处理,例如????????1.统计在线人数和在线用户????????2.系统启动时加载初始化信息????????3、统计网站访问量????????4、记录用户访问路径。

Interceptor拦截器

拦截器是Spring的组件,由Spring框架支持的一个基于动态代理实现的拦截对象,它多用于拦截Controller。?

拦截器在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前进行拦截,然后在之前或之后加入某些操作。比如日志,安全等。可以通过它来进行权限验证,或者判断用户是否登陆,例如12306 判断当前时间是否是购票时间。

过滤器和拦截器的区别:

1.实现原理不同:

拦截器是基于java的反射机制的。

过滤器是基于函数回调。

2.规范不同:

Filter是在Servlet规范中定义的,是Servlet容器支持的。

拦截器是在Spring容器内的,是Spring框架支持的。

3.使用范围不同:

因为过滤器Filter的使用要依赖于Tomcat等容器,所以它只能在Web程序中使用。

拦截器是Spring框架支持的,并不依赖Tomcat等容器,是可以单独使用的,不仅能应用在web程序中,也可以用于Application应用程序中。

4.拦截的请求范围不同

过滤器几乎可以对所有进入容器的请求起作用。

拦截器只会对Controller中请求或访问static目录下的资源请求起作用。

5.触发时机不同:

过滤器Filter只在Sevrlet前后起作用,在请求进入容器后,进入Servlet之前进行预处理,请求结束返回也是在servlet处理完后,返回给前端之前。

拦截器 Interceptor 是在请求进入servlet后,在进入Controller之前进行预处理的,可以深入到方法前后、异常抛出前后进行处理。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 13:34:31  更:2021-08-08 13:34:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/11 2:28:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码