深入理解JavaWeb中过滤器与监听器的应用

目录
  • 过滤器Filter
    • 过滤器声明
    • 过滤器生命周期
  • 监听器Listener
    • Listener声明
    • 实例

过滤器Filter

Filter过滤器能够对匹配的请求到达目标之前或返回响应之后增加一些处理代码

常用来做 全局转码 ,session有效性判断

过滤器声明

在 web.xml 中声明Filter的匹配过滤特征及对应的类路径 , 3.0版本后可以在类上使用 @WebFilter 注解来声明

filter-class : 内部地址路径

url-pattern : 匹配过滤的特征, 实际开发中匹配规则的准确性非常重要

filter-name : 两者的对应

<filter>
    <filter-name>myfilter</filter-name>
    <filter-class>com.yuan.filter.MyFilter</filter-class>
 </filter>
 <filter-mapping>
    <filter-name>myfilter</filter-name>
    <url-pattern>*.do</url-pattern>
 </filter-mapping>

过滤器生命周期

加载 : 在web.xml中声明Filter相关信息

实例化 : 由WebServer( 如 : Tomcat )根据web.xml中声明信息进行实例化, 实例化后才能调用方法

初始化 : 在init() 方法中,进行初始属性设置

过滤 : 用户发请求到达目标之前, 或者完成服务产生响应之后, 在 doFilter()方法中增加处理代码

销毁 : 当servlet被销毁时, 调用destroy()方法, 可以在这个方法中释放一些资源

垃圾回收 : 被JVM进行垃圾回收时, 调用 finalize() 方法

package com.yuan.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // 初始化方法
    }
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        // 对请求进行加工
        filterChain.doFilter(servletRequest, servletResponse);
    }
    @Override
    public void destroy() {
        // 销毁方法
    }
}

监听器Listener

Java Servlet的Listener是一种特殊的Java类,它可以监听Web应用程序中发生的事件,例如Servlet的生命周期事件、HTTP会话事件等。

它可以在Servlet容器启动时注册,当Web应用程序中发生事件时,容器会调用Listener的相应方法来处理它。

监听器Listener 用于监听web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。

当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。

常见的Java Servlet Listener包括:

  1. ServletContextListener:用于监听Servlet上下文初始化和销毁事件。
  2. HttpSessionListener:用于监听HTTP会话的创建和销毁事件。
  3. ServletRequestListener:用于监听Servlet请求的创建和销毁事件。
  4. ServletRequestAttributeListener:用于监听Servlet请求属性的增删改事件。
  5. HttpSessionAttributeListener:用于监听HTTP会话属性的增删改事件。

通过监听这些事件,我们可以在应用程序初始化、销毁、或者在每个请求和会话之间共享信息、修改请求或响应、改变应用程序行为以及跟踪应用程序的状态等。

常用于 统计在线人数和在线用户,系统加载时进行信息初始化,统计网站的访问量等等。

Listener声明

在web.xml中声明

listener-class : 内部地址路径

  <listener>
    <listener-class>com.yuan.listener.MyListener</listener-class>
  </listener>

实例

package com.yuan.listener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
public class MyListener implements HttpSessionAttributeListener {
    @Override
    public void attributeAdded(HttpSessionBindingEvent se) {
        // 向session加入信息时执行的方法
    }
    @Override
    public void attributeRemoved(HttpSessionBindingEvent se) {
        // 从session中移除信息时执行的方法
    }
    @Override
    public void attributeReplaced(HttpSessionBindingEvent se) {
        // session中的信息被替换时执行的方法
    }
}

到此这篇关于深入理解JavaWeb中过滤器与监听器的应用的文章就介绍到这了,更多相关JavaWeb过滤器与监听器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 一文详解JavaWeb过滤器(Filter)

    目录 基本介绍 过滤器(Filter)接口 使用过滤器(Filter) 创建过滤器(Fliter) 使用过滤器(Filter) 配置过滤器(Filter)拦截路径 注解方式 xml方式 过滤器(Filter)生命周期 理论说明 代码演示 FilterConfig和FilterChain说明 FilterConfig FilterConfig实例运用 FilterChain FilterChain应用实例 多个Filter的执行顺序 执行顺序验证 Filter应用实例(实现敏感词汇过滤) 总结 基

  • JavaWeb的监听器和过滤器你了解吗

    目录 1.监听器---->Context,Session 2.监听器三大作用域 3.属性监听器 4.过滤器 4.1过滤器的使用 4.2过滤器的拦截路径 4.3过滤器的拦截顺序 4.4过滤器的四种拦截方式 总结 1.监听器---->Context,Session what is listener? 监听器是一个接口内容由我们实现,会在特定时间被调用,监听器用于监听web应用中三大域对象(request,session,application),信息的创建,销毁,增加,修改,删除等动作的发生,然后

  • JavaWeb中过滤器Filter的用法详解

    目录 过滤器Filter 处理顺序 使用场景 自定义过滤器 源码分析 FilterDef FilterMap 初始化过滤器 创建过滤器链 ApplicationFilterChain 执行过滤器链 过滤器Filter 过滤器通常对一些web资源进行拦截,做完一些处理器再交给下一个过滤器处理,直到所有的过滤器处理器,再调用servlet实例的service方法进行处理.过滤器可以对request进行处理也可以对response进行处理. 处理顺序 如果过滤器链顺序如上图所示,那么对request请

  • JavaWeb之监听器案例讲解

    1. 监听器 实现一个监听器的接口:(有n种监听器) 1.1 编写一个监听器(实现监听器接口) OnlineCountListener .java package com.tian.listener; import javax.servlet.ServletContext; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; //统计网站在线人数 : 统计sessio

  • Javaweb监听器实例之统计在线人数

    本文实例为大家分享了Javaweb统计在线人数示的具体代码,供大家参考,具体内容如下 1. 实现功能 统计在线人数 显示每个人的sessionId.Ip.第一次登录时间 2. 运用监听器种类 HttpSession ServletRequest 3. 实现思想 每一个用户对应着一个session,所以在每次session被创建时,num++: 实现一个用户类(sessionID.IP.Date) 获取IP地址的方法需要用request,所以我们要实现一个ServletRequest监听器 每一次

  • 快速学习JavaWeb中监听器(Listener)的使用方法

    一.监听器介绍 1.1.监听器的概念 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行. 1.2.监听器案例--监听window窗口的事件监听器 package me.gacl.listener.demo; import java.awt.Frame; imp

  • 详解JavaWeb过滤器 Filter问题解决

    目录 基本概念 1.过滤器概述 2.使用过滤器解决中文编码异常问题 3.使用过滤器实现用户登录权限拦截 基本概念 1. Filter 过滤器它是 JavaWeb 的三大组件之一. 三大组件分别是: Servlet 程序. Listener 监听器. Filter 过滤器2. Filter 过滤器它是 JavaEE 的规范. 也就是接口3. Filter 过滤器它的作用是: 拦截请求, 过滤响应        过滤器的三要素: ①拦截 过滤器之所以能够对请求进行预处理,关键是对请求进行拦截,把请求

  • 深入学习JavaWeb中监听器(Listener)的使用方法

    一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器. 这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换

  • Java Web开发中过滤器和监听器使用详解

    目录 1 Filter 1.1 Filter简介 1.2 Filter的快速入门 1.2.1 创建Filter类 1.2.2 访问index.jsp 1.3 Filter的拦截路径的配置 1.4 过滤器链 1.4.1 过滤器链简介 1.4.2 过滤器链的例子 2 Listener 2.1 概念 2.2 监听器的使用 1 Filter 1.1 Filter简介 Filter表示过滤器,是JavaWeb三大组件(Servlet.Filter.Listener)之一. 过滤器可以把资源的请求拦截下来,

  • 浅析JAVA中过滤器、监听器、拦截器的区别

    1.过滤器:所谓过滤器顾名思义是用来过滤的,在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者struts的action前统一设置字符集,或者去除掉一些非法字符(聊天室经常用到的,一些骂人的话).filter 流程是线性的, url传来之后,检查之后,可保持原来的流程

  • javaweb中Filter(过滤器)的常见应用

    一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 package me.gacl.web.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException;

  • Java中的拦截器、过滤器、监听器用法详解

    本文实例讲述了Java中的拦截器.过滤器.监听器用法.分享给大家供大家参考,具体如下: 一.拦截器 :是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方 法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作. 1.Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,

  • 详解JavaWeb中的过滤器Filter

    一.什么是过滤器 1.Filter过滤器的作用:拦截请求 2.拦截请求常见场景: (1)权限检查 (2)日记操作 (3)事务管理 1.1 使用步骤 Filter 过滤器的使用步骤: 1.编写一个类去实现Filter 接口 2.实现过滤方法doFilter() 3.到web.xml 中去配置Filter 的拦截路径 二.初体验 web工程下新建一个admin目录,作为需要权限才能访问的目录,其中有两个文件 2.1 mynav.html <!DOCTYPE html> <html lang=

  • JavaWeb中Servlet的深入理解

    1.servlet:定义: 接口 2.配置servlet: public class HelloServlet extends HttpServlet {} HttpServlet 固定的 IDEA配置v好了 类 package com.example.demo1; import java.io.*; import javax.servlet.http.*; import javax.servlet.annotation.*; @WebServlet(name = "helloServlet&q

  • 聊聊java 过滤器、监听器、拦截器的区别(终结篇)

    过滤器.监听器.拦截器概念 概念 1.servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性, 可以动态生成web页面它工作在客户端请求与服务器响应的中间层: 2.filter:filter是一个可以复用的代码片段,可以用来转换HTTP请求,响应和头信息. 它不能产生一个请求或者响应,它只是修改对某一资源的请求或者响应: 3.listener:监听器,通过listener可以坚挺web服务器中某一执行动作,并根据其要求作出相应的响应. 就是在applica

  • 基于java servlet过滤器和监听器(详解)

    1 过滤器 1.过滤器是什么? servlet规范当中定义的一种特殊的组件,用于拦截容器的调用. 注:容器收到请求之后,如果有过滤器,会先调用过滤器,然后在调用servlet. 2.如何写一个过滤器? 1.写一个java类,实现Filter接口; 2.在接口方法中实现拦截方法; 3.配置过滤器(web.xml); 3.配置初始化参数 1.配置初始化参数.(init-param) 2.通过filterconfig提供的getinitparamenter方法读取初始化的值. 4.优先级: 当有多个过

随机推荐