网站首页 > 精选教程 正文
前面我们学习了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="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
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配置类及其初始化参数介绍。
今天就到这里,未完待续~~
猜你喜欢
- 2024-11-01 关于启动电容器的匹配 启动电容器怎么接线
- 2024-11-01 冷水机的基本运行参数包括哪些? 冷水机参数含义
- 2024-11-01 Java线程池解读:从入门到精通,核心参数全掌握!
- 2024-11-01 使用Java编写求和的代码 使用java编写求和的代码是什么
- 2024-11-01 稳压器启动电流多大? 稳压器输出多少正常
- 2024-11-01 Java容器化参数配置最佳实践 java容器有哪几种
- 2024-11-01 Java变量 java变量的数据类型分为两种
- 2024-11-01 深入理解JVM运行原理:从内存布局到执行流程的全面解析
- 2024-11-01 丹佛斯VLT2900变频器维修后试运行参数设置方法及教...
- 2024-11-01 Java 21:有什么新变化? java+21:有什么新变化?举例说明
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)