狂神说 javaweb 24集:过滤器Filter

2022/5/23 1:02:49

本文主要是介绍狂神说 javaweb 24集:过滤器Filter,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

24.过滤器Filter

11、Filter (重点)

比如 Shiro安全框架技术就是用Filter来实现的

Filter:过滤器 ,用来过滤网站的数据;

  • 处理中文乱码

  • 登录验证….

(比如用来过滤网上骂人的话,我***我自己 0-0)

(img-QEq74VyV-1588757845420)(JavaWeb.assets/1568424858708.png)

(img-QEq74VyV-1588757845420)(JavaWeb.assets/1568424858708.png)

  1. Filter开发步骤:

  2. 导包

  3. 编写过滤器

    1. 导包不要[(img-HHsC3JBD-1588757845420)(JavaWeb.assets/1568425162525.png)](注意)

pom.xml

 <?xml version="1.0" encoding="UTF-8"?>
 <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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 ​
     <groupId>com.study</groupId>
     <artifactId>javaweb-filter</artifactId>
     <version>1.0-SNAPSHOT</version>
 ​
     <dependencies>
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>servlet-api</artifactId>
             <version>2.5</version>
         </dependency>
 ​
         <dependency>
             <groupId>javax.servlet.jsp</groupId>
             <artifactId>javax.servlet.jsp-api</artifactId>
             <version>2.3.3</version>
         </dependency>
 ​
         <dependency>
             <groupId>javax.servlet.jsp.jstl</groupId>
             <artifactId>jstl-api</artifactId>
             <version>1.2</version>
         </dependency>
 ​
         <dependency>
             <groupId>taglibs</groupId>
             <artifactId>standard</artifactId>
             <version>1.1.2</version>
         </dependency>
 ​
         <!--连接数据库-->
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <version>5.1.47</version>
         </dependency>
     </dependencies>
 ​
 </project>

CharacterEcodingFilter.java

  1. 实现Filter接口,重写对应的方法即可

 package com.study.filter;
 ​
 ​
 import javax.servlet.*;
 import java.io.IOException;
 ​
 public class CharacterEcodingFilter implements Filter {
 ​
     //初始化: web 服务器启动,就已经初始化了;随时等待过滤对象出现!
     public void init(FilterConfig filterConfig) throws ServletException {
 ​
         System.out.println("CharacterEcodingFilterStart");
     }
 ​
     //chain: 链的意思
     /*
     1.过滤中的所有代码,在过滤特定请求的时候都会被执行
     2.必须要让过滤器继续通行
         chain.doFilter( request,response );
     3.
     */
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
         request.setCharacterEncoding( "utf-8" );
         response.setCharacterEncoding( "utf-8" );
         response.setContentType( "text/html;charset=utf-8" );
 ​
         System.out.println("CharacterEcodingFilterStart");
         chain.doFilter( request,response );//让我们的程序继续走,如果不写。程序到这里就会被拦截停止!
         System.out.println("CharacterEcodingFilterEnd");
     }
 ​
     //销毁: web 服务器关闭的时候,过滤器被销毁
     public void destroy() {
         //通知垃圾回收站去回收东西
         System.gc();
         System.out.println("CharacterEcodingFilter销毁");
 ​
     }
 }
  1. 在web.xml中配置 Filter

 <filter>
     <filter-name>CharacterEcodingFilter</filter-name>
     <filter-class>com.study.filter.CharacterEcodingFilter</filter-class>
 </filter>
 <filter-mapping>
     <filter-name>CharacterEcodingFilter</filter-name>
     <!--只要是/servlet的任何请求,会经过这个过滤器,都会被过滤-->
     <url-pattern>/servlet/*</url-pattern>
 </filter-mapping>


这篇关于狂神说 javaweb 24集:过滤器Filter的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程