欢迎大家来到IT世界,在知识的湖畔探索吧!
#头条创作挑战赛#
10.2 Filter快速入门
10.2.1 开发步骤
进行 Filter 开发分成以下三个步骤实现:
- 定义类,实现 Filter 接口,并重写其所有方法
- 配置 Filter 拦截资源的路径:在类上定义 @WebFilter 注解。而注解的 value 属性值 /* 表示拦截所有资源
- 在 doFilter 方法中输出一句话,并放行
package web.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
/**
* @Author 晨默
* @Date 2022/9/11 10:47
*/
// 步骤2:
@WebFilter("/*")
public class FilterDemo1 implements Filter { // 步骤1
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
// 步骤3
System.out.println("FilterDemo1....");
// 这语句代表对资源进行放行,允许访问本该访问的资源
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
}
}
欢迎大家来到IT世界,在知识的湖畔探索吧!
10.2.2 代码演示
- 对 pom.xml 文件进行配置,只需要引进 tomcat插件 和 servlet 的依赖坐标
pom.xml 具体如下所示:
欢迎大家来到IT世界,在知识的湖畔探索吧! <?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: pom.xml 642118 2008-03-28 08:04:16Z reinhard $ -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<name>FilterDemo</name>
<groupId>org.example</groupId>
<artifactId>FilterDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<java.version>16</java.version>
<maven.compiler.source>16</maven.compiler.source>
<maven.compiler.target>16</maven.compiler.target>
</properties>
<build>
<plugins>
<!-- Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 访问端口号 -->
<port>5050</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
报错警示:会出现 Java 不支持 Java5 版本
此时需要在 项目结构 中的模块中设置编译语言,与使用的语言版本一直即可,
- 编写 hello.jsp 页面内容如下:
<%-- Created by IntelliJ IDEA. User: 晨默 Date: 2022/9/11 Time: 11:05 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>Hello Filter!</h1> </body> </html>
演示效果
- 当 过滤器的 dofilter() 中没有编写 filterChain.doFilter(servletRequest,servletResponse); 语句时,访问 hello.jsp 页面 没有任何效果,在 idea 控制台 会打印如下内容:
- 编写了 filterChain.doFilter(servletRequest,servletResponse); 后,hello.jsp 页面就可以正常显示了
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/30280.html