目录

  • 1 概述及环境配置(4学时)
    • 1.1 课程介绍
    • 1.2 基础知识(2学时)
    • 1.3 [T1]环境配置(2学时)
  • 2 MVC(18学时)
    • 2.1 HTML/CSS/JS(2学时)
    • 2.2 JSP语法(2学时)
    • 2.3 JSP内置对象(4学时)
    • 2.4 [T2]JSP实训(2学时)
    • 2.5 M:JavaBean(1学时)
    • 2.6 Servlet(2学时)
    • 2.7 EL/JSTL(1学时)
    • 2.8 Filter(2学时)
    • 2.9 [T3]MVC实训(2学时)
    • 2.10 设计模式(课外)
  • 3 PBD(24学时)
    • 3.1 JDBC(2学时)
    • 3.2 [T4]JDBC实训(2学时)
    • 3.3 三层架构(2学时)
    • 3.4 数据库连接池(2学时)
    • 3.5 JdbcTemplate(2学时)
    • 3.6 [T5]三层架构实训(2学时)
    • 3.7 思政专题:信息安全
      • 3.7.1 Ajax数据检验(2学时)
      • 3.7.2 CAPTCHA(2学时)
      • 3.7.3 Cookies(2学时)
      • 3.7.4 密码加密(2学时)
    • 3.8 [T6]安全系统实训(4学时)
  • 4 Framework(12学时)
    • 4.1 Hibernate(课外)
    • 4.2 Mybatis(4学时)
    • 4.3 Spring(4学时)
    • 4.4 SpringMVC(4学时)
    • 4.5 SSM(课外)
  • 5 创新创业专栏
    • 5.1 学生学术论文
    • 5.2 学生开发项目
    • 5.3 大学生创新项目
    • 5.4 学科竞赛获奖
    • 5.5 授权软件著作权
    • 5.6 学生小讲堂
  • 6 资料下载
    • 6.1 开发软件
    • 6.2 开发资源
    • 6.3 帮助文档
    • 6.4 课程讲义
    • 6.5 国家标准
    • 6.6 课外资源
Filter(2学时)
  • 1 讲义
  • 2 测验

Filter是JSP核心编程中一个重要的部分,功能类似于servlet,Filter承担的角色相当于守卫[QL1] ,允许合法访问,禁止非法访问。另外,Filter还具有附带参数配置的功能。

 [QL1]网络上我们访问资源,只需要知道URL即可访问。这就好比是不是我们知道知道别人家的地址就一定能进到屋里面呢?显然不是,我们还需要有钥匙,或者授权。

概述

Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源等进行拦截[QL2] 。

 [QL2]决定是否授权给用户,否让用户访问。

什么是过滤器?

  1. 一个Java编写的类

  2. 实现了Filter接口

  3. 核心方法是doFilter()【详见3.6.1.2】

  4. Filter不是一个Servlet[QL3] ,不能产生一个response,但是能够在request到达servlet之前处理request,在离开servlet时处理response。

 [QL3]不能直接使用request和response

过滤器的核心对象

  • 所有的过滤器实现Filter接口

  • 在Filter接口中定义了三个方法

  1. void init[QL4] (FilterConfig filterConfig)

  2. void doFilter[QL5] (ServletRequest request, ServletResponse response, FilterChainchain)

  3. voiddestroy()

 [QL4]对过滤器进行初始化

 [QL5]实现具体的过滤处理

  • 在上述方法中init方法引入了接口FilterConfig

  • 方法doFilter中引入了接口FilterChain

                             

 过滤器的原理

                           

[QL6] [QL7] 

过滤器中的doFilter方法是先于[QL8] servlet的service方法的,因此可以在处理request之前对用户的request进行拦截或者处理。

 [QL6]如果通过某个过滤器则必须调用doFilter方法,否则请求将在过滤器中停止。

 [QL7]过滤器存在于客户端和目标资源之前;可以有多个过滤器;多个过滤器组成过滤链。

 [QL8]WEB服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法。

过滤器的作用及应用场景

  1. 对request进行处理(如统一全站编码)

  2. 对response进行处理(如禁止缓存等)

  3. 决定目标资源是否被访问(权限控制,黑白名单)