javaweb三大组件

过滤器:是javaWeb三大组件之一:Servlet,listener,filter,作用:拦截请求过滤响应在这里插入图片描述

过滤器代码实现

1、实现Filter接口
2、重写dofilter方法
3、配置 Filter 的拦截路径
package com.blb.request;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;

public class FilterDemo implements Filter {
   
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
   
        //在 web 工程启动的时候执行(Filter 已经创建)
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
   
        //每次拦截到请求,就会执行(访问一次,拦截一次请求(根据web.xml中的配置拦截请求))
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpSession session = request.getSession();
        Object user = session.getAttribute("user");
        if(user==null){
   
            request.getRequestDispatcher("/login.jsp").forward(request,servletResponse);
            return;
        }
        //​ 1.执行下一个Filter过滤器(如果有Filter),执行目标资源
        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void destroy() {
   
        //停止 web 工程的时候,就会执行(停止 web 工程,也会销毁 Filter 过滤器)
    }
}

设置多层过滤器:过滤顺序:在多个 Filter 过滤器执行的时候,他们的优先顺序是由他们在 web.xml 中从上到下配置的顺序决定的!
在这里插入图片描述

FilterConfig 类见名知义,它是 Filter 过滤器的配置文件类。
Tomcat 每次创建 Filter 的时候,也会同时创建一个 FilterConfig 类,这里包含了 Filter 配置文件的配置息。

FilterConfig 类的作用是获取 filter 过滤器的配置内容

获取 Filter 的名称 filter-name 的内容
获取在 Filter 中 wen.xml 配置的 init-param 初始化参数
获取 ServletContext 对象
@Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("2.Filter 初始化方法 init(FilterConfig filterConfig)");

//        1. 获取 Filter 的名称 filter-name 的内容 (web-xml 中配置的名称)
        System.out.println("filter-name:" + filterConfig.getFilterName());
//        2. 获取在 web.xml 中配置的 init-param 初始化参数
        System.out.println("初始化参数username的值是:" + filterConfig.getInitParameter("username"));
        System.out.println("初始化参数url的值是:" + filterConfig.getInitParameter("url"));
//        3. 获取 ServletContext 对象
        System.out.println(filterConfig.getServletContext());

    }

拦截器

  • 拦截器的概念:java里的拦截器时动态拦截Action调用的对象,他提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中重用部分代码方式。在A
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值