servlet过滤器(Filter)
过滤器(Filter)
- 什么是过滤器
过滤器是Javaweb的三大组件之一。他与servlet很相似,不过过滤器是用来拦截请求的,而不是处理请求的。
当用户请求某个servlet时,会先执行部署在这个请求上的Filter,如果Filter“放行”,那么,会继续执行用户请求的servlet,如果Filter不放行,那么就不会执行用户请求的Servlet。
他会在一组资源(servlet jsp CSS HTML .....)的前面执行
他可以让请求得到目标资源,也可以不让请求达到!
*过滤器有拦截请求的能力!
如:没有登录的人拦截 不然其访问对应的资源
过滤器如何编写?
- 写一个类实现javax.servlet.Filter接口
package com.igeek.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; /** * @author www.igeehome.com * * TODO 第一个过滤器 * * 2018年8月25日上午11:06:15 */ public class FirstFilter implements Filter { /** * filter销毁是调用,释放资源 */ public void destroy() { System.out.println("销毁filter:FirstFilter"); } /** * 过滤处理 * @param request * @param response * @param chain 一般用来调用下一个filter * @throws IOException * @throws ServletException */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("执行了FirstFilter的diFilter方法"); //通过FilterChain调用下一个filter chain.doFilter(request, response); } /** * 初始化feilter * @param config 获得初始化参数 * @throws ServletException */ public void init(FilterConfig config) throws ServletException { System.out.println("初始化filter:FirstFilter"); } } |
2.在web.xml中就行配置【与servlet非常相似】
<filter> <filter-name>firstFilter</filter-name> <filter-class>com.igeek.filter.FirstFilter</filter-class> </filter> <filter-mapping> <filter-name>firstFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> |
Tips当编写多个filter时,会按照配置顺序执行filter。
- Filter的生命周期
和Serlvet几乎一致。
在服务器启动时创建对象,之创建一次。在服务器关闭时销毁filter对象
初始化方法:
public void init(FilterConfig config)
在filter对象创建之后执行,用于初始化filter对象。
Config参数可以获取初始化参数。
销毁的方法:
public void destroy()
在服务器关闭时,销毁filter对象之前执行,主要用于释放资源。
过滤器处理方法:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
处理要过滤的请求的方法。
参数:
ServletRequest 是HttpServletRequest的父接口。
实际上服务传入的对象就是HttpServletRequest类型的参数。
所以可以直接强制类型转化
HttpServletRequest req = (HttpServletRequest)request;
ServletResponse 是HttpServletResponse父接口。
服务器传入的实际也是HttpServletResponse对象。同样可以强制类型转换。
tips:
在filter中同样可以使request转发,或者response重定向。
FilterChain:主要是调用其方法 doFilter(request,response)
如果存在下一个filter,则直接调用下一个filter,如果不存在,则直接访问资源。
servlet过滤器(Filter)相关推荐
- Java web—Servlet过滤器(Filter)
前言: 过滤器是Servlet中一个非常重要的组成部分,进行WEB开发时无不用到过滤器:因此这篇blog来单独总结下关于过滤器的知识点. 一.首先来了解一下什么是过滤器: 下面这句话引 ...
- Servlet过滤器Filter和监听器
一.Servlet过滤器的概念: *********************************************************************************** ...
- Servlet过滤器Filter
Servlet Filter 又称 Servlet 过滤器,它是在 Servlet 2.3 规范中定义的,能够对 Servlet 容器传给 Web 资源的 request 对象和 response 对 ...
- Java学习路线-49:Servlet过滤器Filter
课时1 过滤器的入门 JavaWeb三大组件 1.都需要在web.xml中进行配置 Servlet Filter Listener 2.过滤器 会在一组资源(jsp, servlet, css, ht ...
- java过滤器应用实例_Servlet过滤器Filter的简单介绍(附示例)
本篇文章给大家带来的内容是关于Servlet过滤器Filter的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 特点 1)Filter是依赖于Servlet容器,属 ...
- SpringBoot定义三大组件Servlet,过滤器Filter,监听器Listener
SpringBoot定义三大组件Servlet,过滤器Filter,监听器Listener 1.定义组件的配置类: com.example.mybatis2018.config.MyServletCo ...
- Javaweb核心之servlet规范过滤器-----Filter
2 Servlet规范中的过滤器-Filter 2.1 过滤器入门 2.1.1 过滤器概念及作用 过滤器--Filter,它是JavaWeb三大组件之一.另外两个是Servlet和Listener. ...
- 文章本天成|跟我一起来一场简洁易懂的servlet的过滤器Filter的学习吧
filter的前身今生 0.fiter是什么 1.filter有啥用 2.filter在哪里 3.filter做了啥 4.filter代码实现 4.1 依赖包 4.2 代码 4.2.1 MyFirst ...
- Servlet 3.0 @WebFilter注解过滤器Filter使用(如何设置多个参数的方法)
因为在网上搜寻半天发现没有关于@WebFilter注解如何设置多个参数的方法,参考其他博主的文章和自己的实践,写下此笔记,供大家参考 Servlet3.0提供@WebFilter注解将一个实现了jav ...
- Servlet过滤器(Filter)不过滤登录页面、JS和CSS文件
Servlet过滤器主要用于对客户端(浏览器)的请求进行过滤处理,先将过滤后的请求转交给下一资源,它在Java Web开发中具有十分重要的作用.Servlet过滤器可以用于验证用户的登录情况,但在实际 ...
最新文章
- Quartz.Net 调度框架配置介绍
- 扎克伯格All in元宇宙,公司更名Meta,「脸」不要了
- [LUOGU] P4342 [IOI1998]Polygon
- linux云管理,教程|云帮手部署Linux公有云管理系统
- bootstrap-validator 验证一个标签同时验证另一个指定标签
- 用户账号管理基本概念
- 范例 在 Setting 里加入 HiApk Settings 选项
- TCP的带宽估计和丢包恢复
- 字符串char与string转换
- 计算机病毒正确探讨目录,毕业论文-计算机病毒的正确防御探讨.doc
- 如何解压.bz2文件包
- U盘量产大致研究思路
- 中国知网论文free下载的方法
- 抖音上很火的 立方体相册和旋转时钟,基于人脸识别实现程序员的专属相册和专属时钟,包含15套相册模板和9套时钟风格,可以直接替换成自己的图片,部署生成自己的个性化专属相册
- QQ快速登录协议的分析与漏洞利用
- git报错 failed: The TLS connection was non-properly terminated
- 弹出表情气泡仿魔兽的技能冷效果却实现
- (要更新)SRAM、DRAM、SDRAM、DDR异同
- css特效之openbox
- 从Excel导出宕机到初学Apache POI