过滤器(Filter)与监听器(Listener)

44 篇文章 6 订阅
28 篇文章 2 订阅

目录

1、什么是过滤器?

2、过滤器的语法格式

3、使⽤场景

4、什么是监听器?

5、监听器分类


1、什么是过滤器

过滤器实际上就是对 web 资源进⾏拦截,做⼀些处理后再交给下⼀个过滤器或 servlet 处理,通常都是⽤来拦截 request 进⾏处理的,也可以对返回的 response 进⾏拦截处理

 

2、过滤器的语法格式

public class CharSetFilter implements Filter{}
1. 创建⼀个类实现 Filter 接⼝
2. 重写接⼝中的⽅法
public void destroy() { //销毁的⽅法}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain
chain) throws ServletException, IOException {
 //过滤⽅法 主要是对request和response进⾏⼀些处理,然后交给下⼀个过滤器或
Servlet处理
 chain.doFilter(req, resp);
 }
 public void init(FilterConfig config) throws ServletException {
 /*初始化⽅法 接收⼀个FilterConfig类型的参数 该参数是对Filter的⼀些配置*/
 }
3. web.xml ⽂件中配置
<filter>
 <filter-name>过滤器名称</filter-name>
 <filter-class>过滤器所在的路径</filter-class>
 </filter>
 <filter-mapping>
 <filter-name>过滤器名称</filter-name>
 <url-pattern>需要过滤的资源</url-pattern>
 </filter-mapping>

3、使⽤场景

 

1. 如何防⽌⽤户未登录就执⾏后续操作
2. 设置编码⽅式 -- 统⼀设置编码
3. 加密解密 ( 密码的加密和解密 )
4. ⾮法⽂字筛选
5. 下载资源的限制
注意 : servlet 之前和之后都会被执⾏

4、什么是监听器?

监听器就是监听某个域对象的的状态变化的组件
监听器的相关概念
事件源:被监听的对象 ( 三个域对象 request session servletContext)
监听器:监听事件源对象事件源对象的状态的变化都会触发监听器
注册监听器:将监听器与事件源进⾏绑定
响应⾏为:监听器监听到事件源的状态变化时所涉及的功能代码(程序员编写代码)

5、监听器分类

第⼀维度按照被监听的对象划分: ServletRequest 域、 HttpSession 域、 ServletContext
第⼆维度按照监听的内容分:监听域对象的创建与销毁的、监听域对象的属性变化的

6、监听器的编写步骤

 <listener>
 <listener-class>监听器所在的路径</listener-class> 
</listener>
编写⼀个监听器类去实现监听器接⼝
覆盖监听器的⽅法
需要在 web.xml 中进⾏配置 注册

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
过滤器监听器是servlet中的两个重要组件,它们可以帮助我们更好地管理和处理请求和响应。以下是过滤器监听器的配置和运用方法: 1. 过滤器(Filter)的配置和运用: 过滤器用于拦截请求和响应,可以在请求到达servlet之前或者响应返回给客户端之前进行处理。过滤器可以对请求进行拦截、处理和修改,也可以对响应进行拦截、处理和修改,从而实现对请求和响应的控制和管理。 过滤器的配置需要在web.xml文件中进行,例如: ``` <filter> <filter-name>MyFilter</filter-name> <filter-class>com.example.MyFilter</filter-class> </filter> <filter-mapping> <filter-name>MyFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 这样,MyFilter就会拦截所有的请求。在MyFilter中,可以重写doFilter方法,对请求和响应进行处理和修改。 2. 监听器(Listener)的配置和运用: 监听器用于监听servlet容器中的事件,例如servlet的创建和销毁、session的创建和销毁、attribute的添加和移除等等。通过监听这些事件,我们可以在特定的时刻进行特定的操作,例如在session创建时初始化一些数据、在servlet销毁时释放一些资源等等。 监听器的配置也需要在web.xml文件中进行,例如: ``` <listener> <listener-class>com.example.MyListener</listener-class> </listener> ``` 这样,在MyListener中,可以重写对应的监听器方法,例如: ``` public class MyListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent event) { // session创建时执行的代码 } public void sessionDestroyed(HttpSessionEvent event) { // session销毁时执行的代码 } } ``` 这样,在session创建和销毁时,就会执行对应的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初尘屿风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值