过滤器-监听器

过滤器

只要在浏览器中输入正确的url地址,不管此次请求是否合理,Tomcat服务器在接收到请求后就会直接调用对应的资源完成请求的处理。有些场景, 需要对请求进行相关处理, 处理完成后, 在访问请求的资源

过滤器的编写步骤

  1. 创建一个类,实现过滤器接口(Filter)
  2. 实现接口中的方法,编写自己的代码
  3. 在web.xml中配置过滤器或通过注解配置
    使用注解方式
@WebServlet("/*")
public class Myfilter implements Filter {
    @Override//初始化过滤器调用
    public void init(FilterConfig filterConfig) throws ServletException {
        Filter.super.init(filterConfig);
    }

    @Override//请求经过过滤器调用,核心方法对请求做处理
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
         System.out.println("开始对请求进行判断处理!");
        filterChain.doFilter(servletRequest, servletResponse);//放行
    }

    @Override//销毁过滤器时调用
    public void destroy() {
        Filter.super.destroy();
    }
}

没有注解,要配置web.xml

<!--配置过滤器-->
<filter>
    <filter-name>CharacterFilter</filter-name>
    <!--
        配置过滤器所在的全路径,由Tomcat在启动的时候,通过放射创建该过滤器对象
    -->
    <filter-class>com.bjsxt.filter.CharacterFilter</filter-class>
</filter>

<!--配置过滤器的拦截路径,也就是对哪些请求进行拦截-->
<filter-mapping>
    <filter-name>CharacterFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

监听器(Listener)

给三大域对象添加监听,监听三大域对象的创建及销毁,监听到他们有动态的时候,执行对应的方法。这就是监听器。
作用:监听三大域对象的创建、销毁及数据的变更。

特点:

  1. 监听方法由tomcat根据监听结果来调用执行
  2. 监听方法中的逻辑代码由我们根据需要编

监听器的使用步骤:
创建一个类,实现监听器接口(Listener)
实现里面的方法
在web.xml中配置监听器
监听器接口:
4. ServletRequestListenter 监听request对象的创建销毁
5. ServletRequestAttributeListener 监听request域中数据的变更
6. HttpSessionListener 监听Session对象的创建销毁
7. HttpSessionAttributeListener 监听Session对象中数据的变更
8. ServletContextListener 监听ServletContext对象的创建销毁
9. ServletContextAttributeListener 监听ServletContext对象中数据的变更

在类中继承上述接口实现方法即可
使用注解 @WebListener
不使用注解,则要配置web.xml

<!--
    配置监听器,在服务器启动的时候就会创建监听器对象,监听器生效,一旦符合监听要求,
    tomcat底层会通过反射调用监听器中的方法完成处理
-->
<listener>
    <listener-class>com.bjsxt.listener.MyListener</listener-class>
</listener>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值