ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

狂神说 javaweb 24集:过滤器Filter

2022-05-22 23:02:15  阅读:201  来源: 互联网

标签:24 javaweb System Filter CharacterEcodingFilter 过滤器 狂神 servlet javax


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>
 

标签:24,javaweb,System,Filter,CharacterEcodingFilter,过滤器,狂神,servlet,javax
来源: https://www.cnblogs.com/jianchizuo/p/16299446.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有