java_day30_javaWeb三大组件之过滤器Filter

过滤器filter

一.简介及原理

  1.Filter也称之为过滤器,管理web服务器的所有web资源,如jsp,servlet,html,图片等.如实现URL级别的权限访问控制

  2.Filter接口中有一个doFilter方法,配置对哪个web资源进行拦截后,WEB服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法,request请求和response响应都会进入配置的filter,根据filter内的代码决定客户端请求到的服务器的资源,如拦截,动态页面静态化等处理

二.过滤器注册和映射Filter

  1.注册

  <filter>
    <filter-name>FirstFilter</filter-name>  //Filter名
    <filter-class>com.lanou3g.code0523.FirstFilter</filter-class> //Filter的全限定类名
  </filter>

  2.映射:通过web.xml注册,也可以通过注解@WebFilter注册

<filter-mapping>元素用于设置一个 Filter 所负责拦截的资源。一个Filter拦截的资源可通过两种方式来指定:Servlet 名称和资源访问的请求路径

  <filter-name>子元素用于设置filter的注册名称。该值必须是在<filter>元素中声明过的过滤器的名字

  <url-pattern>设置 filter 所拦截的请求路径(过滤器关联的URL样式)

  <servlet-name>指定过滤器所拦截的Servlet名称。

  <dispatcher>指定过滤器所拦截的资源被 Servlet
容器调用的方式,可以是REQUEST,INCLUDE,FORWARD和ERROR之一,默认REQUEST。用户可以设置多个<dispatcher>
子元素用来指定 Filter 对资源的多种调用方式进行拦截。

<filter-mapping>

<filter-name>testFilter</filter-name>   //映射的过滤器名称

<url-pattern>/index.jsp</url-pattern>  //拦截的URL

<dispatcher>REQUEST</dispatcher>  //拦截request请求及请求重定向

<dispatcher>FORWARD</dispatcher>  //拦截请求转发

</filter-mapping>

 <dispatcher> 子元素可以设置的值及其意义:

REQUEST:当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include()或forward()方法访问

时,那么该过滤器就不会被调用。

INCLUDE:拦截请求包含.

FORWARD:拦截请求转发.

ERROR:如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用。除此之外,过滤器不会被调用。

原文地址:https://www.cnblogs.com/memo-song/p/9078212.html

时间: 2024-10-20 10:55:34

java_day30_javaWeb三大组件之过滤器Filter的相关文章

Spring 中的三大组件Listener、Filter 和Interceptor 总结

一.背景 这段时间因为工作不忙,所以有时间来总结整理一下之前遇到的一些问题.在之前项目开发过程中碰到过关于拦截器.过滤器之类的问题(发现自己基础真的薄弱,不过没关系知识一点一滴积累),索性就记录下来.由于笔者知识水平有限,如有不对的地方欢迎批评指正. 二.概念 1. Servlet Servlet 是sun 公司提供的一门用于开发动态web 资源的技术,主要功能在于交互式地浏览和修改数据,生成动态Web 页面,我们实际开发应用中,一般不需要去研究Http 协议,只要扩展servlet 接口,即可

JavaWeb三大组件—过滤器filter

JavaWeb三大组件 1. 都需要在web.xml中进行配置ServletListener(2个感知监听器不需要配置)Filter 2. 过滤器 它会在一组资源(jsp.servlet..css..html等等)的前面执行! 它可以让请求得到目标资源,也可以不让请求达到! * 过滤器有拦截请求的能力! 登录:允许它访问AServlet.BServlet.CServlet ------------------------------- 过滤器如何编写 1. 写一个类实现Filter接口2. 在w

Filter过滤器-JavaWeb三大组件之一

Servlet.Filter.Listener是JavaWeb的三大组件,给Web开发提供了很大的便利. 什么是Filter? Filter,过滤器.类似与生活中的净水器.空气净化器. JavaWeb中Filter的作用:当浏览器请求访问服务器的资源时,过滤器可以将请求拦截下来,完成一下特殊的功能.例如:登录验证.统一编码处理.敏感字符过滤等. Filter的基本使用 (1)定义一个类,实现接口Filter. (2)实现Filter接口的方法 (3)配置拦截路径.可以用web.xml进行配置:S

学习笔记_过滤器概述(过滤器JavaWeb三大组件之一)

过滤器Filter Filter和Lister是Servlet规范里的两个高级特性.不同于Servlet,它们不用于处理客户端请求,只用于对request.response进行修改或者对context.session.request事件进行监听. Filter意为滤镜或者过滤器,用于Servlet之外对request或者response进行修改.Filter提出了滤镜链的概念,一个Filterchain包括多个F 1 什么是过滤器 过滤器JavaWeb三大组件之一,它与Servlet很相似!不它

SpringBoot 注册Servlet三大组件【Servlet、Filter、Listener】-原生代码+@Bean+效果展示

由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件. 注册三大组件,class MyServlet()/class MyListener/ class MyFilter 需要自己亲自编写!! 1. class MyServlet package com.szs.springboot04.servlet; import javax.servlet.ServletException; import javax.s

JavaWeb三大组件——过滤器的运行机制理解

过滤器Filter 文章前言:本文侧重实用和理解. 一.过滤器的概念. lFilter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等一些高级功能. 二.过滤器的运行机制. 没有加Filter的web项目运行机制如下: 加上Filter的web运行机制: 由

web day21 web过滤器Filter,应用案例统计IP,解决全站乱码,粗粒度权限控制,页面静态化

JavaWeb三大组件 1. 都需要在web.xml中进行配置 Servlet Listener(2个感知监听器不需要配置) Filter 过滤器 它会在一组资源(jsp.servlet..css..html等等)的前面执行! 它可以让请求得到目标资源,也可以不让请求达到! * 过滤器有拦截请求的能力! 登录: 允许它访问AServlet.BServlet.CServlet ------------------------------- 过滤器如何编写 1. 写一个类实现Filter接口 2.

JavaWeb-19 (JDBC之过滤器Filter)

JavaWeb-19 JDBC之过滤器Filter 一.Filter过滤器概述 Filter(过滤器):Web三大组件之一,就是对目标资源进行请求前或请求后. Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等一些高级功能. 实际中:过滤器就相

JavaWeb三大组件小结

学完JavaWeb阶段有一段时间了,在进入框架学习之前,把JavaWeb三大组件做个总结记录,为框架学习铺点基础. 一.什么是JavaWeb三大组件? Servlet,Listener,Filter.它们在JavaWeb开发中分别提供不同的功能. 二.三大组件介绍 1.Servlet 1.1 servlet介绍 广义上说,servlet是运行在web服务器或应用服务器的程序,用来处理客户端请求的动态资源.Servlet = Service + Applet,表示小服务程序.狭义上来说,狭义的Se