龙空技术网

《Servlet》第29节:FilterConfig过滤器配置类及初始化参数介绍

Java新手笔记 11

前言:

现在大家对“java过滤器使用代码”大概比较注重,姐妹们都想要了解一些“java过滤器使用代码”的相关文章。那么小编同时在网上收集了一些对于“java过滤器使用代码””的相关文章,希望姐妹们能喜欢,我们一起来了解一下吧!

前面我们学习了ServletConfig配置类,这个ServletConfig类保存的是Servlet程序的信息,例如:Servlet名称、Servlet初始化参数、ServletContext上下文对象等等。对于Filter过滤器来说,它也有过滤器配置信息,使用FilterConfig类来表示,通过这个FilterConfig配置对象,可以获取到Filter过滤器名称、Filter初始化参数、以及ServletContext上下文对象。下面就来介绍一下FilterConfig类的使用。

1.1、FilterConfig提供的方法

查看FilterConfig接口源代码,可以发现,该接口中提供了下面这几个方法:

其中getFilterName()方法的作用是获取当前这个Filter过滤器的名称,getServletContext()方法用于获取上下文对象,getInitParameterNames()方法用于获取当前Filter过滤器中配置的所有初始化参数名称,getInitParameter()方法用于获取指定初始化参数名称的参数值。

FilterConfig配置对象,会在Filter过滤器实例化的过程中,将FilterConfig配置对象传递到init()初始化方法中,之后就可以在init()方法里面,使用FilterConfig对象进行后续的操作。

1.2、FilterConfig案例代码

FilterConfig案例代码如下所示:

package com.gitcode.filter;import javax.servlet.*;import java.io.IOException;import java.util.Enumeration;/** * @version 1.0.0 * @Date: 2024/2/21 14:04 * @Author ZhuYouBin * @Description: */public class FirstFilter implements Filter {    @Override    public void init(FilterConfig filterConfig) throws ServletException {        // 1、获取过滤器名称        String filterName = filterConfig.getFilterName();        System.out.println("获取过滤器名称: " + filterName);        // 2、获取上下文对象        ServletContext context = filterConfig.getServletContext();        // 3、获取过滤器所有的初始化参数名称        Enumeration<String> initParameterNames = filterConfig.getInitParameterNames();        while (initParameterNames.hasMoreElements()) {            System.out.println("初始化参数名称: " + initParameterNames.nextElement());        }        // 4、获取指定名称的过滤器参数值        String username = filterConfig.getInitParameter("username");        System.out.println("username参数值: " + username);    }    @Override    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {        System.out.println("执行过滤器doFilter()方法...");        filterChain.doFilter(servletRequest, servletResponse);    }    @Override    public void destroy() {        System.out.println("执行过滤器的销毁方法...");    }}

web.xml配置文件如下:

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns=";         xmlns:xsi=";         xsi:schemaLocation="                      ;         version="3.1"         metadata-complete="true">    <display-name>工程名称</display-name>    <description>        工程描述    </description>    <!-- 配置Servlet -->    <servlet>        <servlet-name>DemoServlet</servlet-name>        <servlet-class>com.gitcode.servlet.DemoServlet</servlet-class>    </servlet>    <servlet-mapping>        <servlet-name>DemoServlet</servlet-name>        <url-pattern>/demoServlet</url-pattern>    </servlet-mapping>    <!-- 配置过滤器 -->    <filter>        <filter-name>FirstFilter</filter-name>        <filter-class>com.gitcode.filter.FirstFilter</filter-class>        <!-- 过滤器的初始化参数 -->        <init-param>            <param-name>username</param-name>            <param-value>Tom-2024</param-value>        </init-param>        <init-param>            <param-name>password</param-name>            <param-value>admin123456</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>FirstFilter</filter-name>        <!-- 拦截 /demoServlet 请求路径 -->        <url-pattern>/demoServlet</url-pattern>    </filter-mapping></web-app>

当我们启动Tomcat容器的时候,Filter过滤器就会被实例化,此时就会在控制台打印出下面的日志:

以上,就是FilterConfig配置类及其初始化参数介绍。

今天就到这里,未完待续~~

标签: #java过滤器使用代码 #java过滤器使用代码是什么