JavaWeb-Filter

1 过滤器概述

oa项目还有什么缺陷?

目前oa项目的功能不多,Servlet也不多,但若功能很多,假如还有EmpServlet、OrderServlet等等,每一个Servlet都是处理自己相关的业务。但它们有相同的地方,在执行之前都要判断用户是否登录了,如果用户登录可以继续操作,如果没有需要登录。这段处理是固定的,大家都一样,怎么解决这个问题??可以使用Filter过滤器。

Filter过滤器是什么,有什么用,执行原理是什么?

  • Filter是过滤器
  • 可以在Servlet这个目标程序执行之前添加代码,也可以在执行之后添加代码,之前之后都可以过滤
  • 一般情况下都是在过滤器当中编写公共代码。

一个过滤器怎么写?

第一步:编写一个Java类实现一个接口:jakarta.servlet.Filter。并且实现这个接口中的所有方法。

  • init方法:在Filter对象第一次被创建之后调用,并且只调用一次
  • doFilter方法:只要用户发送一次请求,则执行一次,发送N此执行N次,在这个方法中编写过滤规则。
  • destroy方法:在Filter对象被释放/销毁之前调用,并且只调用一次。

第二步:在web.xml文件对FIlter进行配置,和Servlet类似,或者使用注解进行配置。

注意:

  • Servlet对象默认情况下,在服务器启动的时候是不会创建对象的。
  • Filter对象默认情况下,在服务器启动的时候会创建对象
  • Servlet是单例的

小小演示一波:

随便写两个Servlet,然后写个Filter,Filter如下:

package com.itzw.javaweb.servlet
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值