filterchain(如何创建过滤器Filter)

2023-08-06 07:00:02 61

filterchain(如何创建过滤器Filter)

本文目录

如何创建过滤器Filter

建立一个过滤器涉及下列五个步骤:1、建立一个实现Filter接口的类。这个类需要三个方法,分别是:doFilter、init和destroy。doFilter方法包含主要的过滤代码,init方法建立设置操作,而destroy方法进行清楚。2、在doFilter方法中放入过滤行为。doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过滤器中忽略此参数。最后一个参数为FilterChain,如下一步所述,此参数用来调用servlet或JSP页。3、调用FilterChain对象的doFilter方法。Filter接口的doFilter方法取一个FilterChain对象作为它的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。4、对相应的servlet和JSP页面注册过滤器。在部署描述符文件(web.xml)中使用filter和filter-mapping元素。5、禁用激活器servlet。防止用户利用缺省servlet URL绕过过滤器设置。doFilter方法:public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws ServletException, IOException{HttpServletRequest req = (HttpServletRequest)request;System.out.println(req.getRemoteHost() + “ tried to access “ +req.getRequestURL() +“ on “ + new Date() + “.“);chain.doFilter(request,response);}在web.xml中进行部署分别是:filter和filter-mapping。filter元素向系统注册一个过滤对象,filter-mapping元素指定该过滤对象所应用的URL。1.filter元素filter元素位于部署描述符文件(web.xml)的前部,所有filter-mapping、servlet或servlet-mapping元素之前。filter元素具有如下六个可能的子元素::icon 这是一个可选的元素,它声明IDE能够使用的一个图象文件。:filter-name 这是一个必需的元素,它给过滤器分配一个选定的名字。:display-name 这是一个可选的元素,它给出IDE使用的短名称。:description 这也是一个可选的元素,它给出IDE的信息,提供文本文档。:filter-class 这是一个必需的元素,它指定过滤器实现类的完全限定名。:init-param 这是一个可选的元素,它定义可利用FilterConfig的getInitParameter方法读取的初始化参数。单个过滤器元素可包含多个init-param元素。2.filter-mapping元素filter-mapping元素位于web.xml文件中filter元素之后serlvet元素之前。它包含如下三个可能的子元素:::filter-name 这个必需的元素必须与用filter元素声明时给予过滤器的名称相匹配。:url-pattern 此元素声明一个以斜杠(/)开始的模式,它指定过滤器应用的URL。所有filter-mapping元素中必须提供url-pattern或servlet-name。但不能对单个filter-mapping元素提供多个url-pattern元素项。如果希望过滤器适用于多个模式,可重复整个filter-mapping元素。:servlet-name 此元素给出一个名称,此名称必须与利用servlet元素给予servlet或JSP页面的名称相匹配。不能给单个filter-mapping元素提供多个servlet-name元素项。

如何实现一个简单地Filter

// 1. 创建一个web项目 
// 2. 编写一个类实现 Filter 接口
// 3. 实现三个方法
// 4. 在web.xml中配置Filter参数
// 1
public class MyFilter01 implements Filter {
    
    // 2 
    @Override
    // filter对象初始化方法 filter对象创建时执行
    // 服务器启动时就创建该filter对象
    public void init(FilterConfig filterConfig) throws ServletException {
        // 其中参数config代表 该Filter对象的配置信息的对象,内部封装是该filter的配置信息
        String filterName = filterConfig.getFilterName();
        ServletContext servletContext = filterConfig.getServletContext();
        String initParameter = filterConfig.getInitParameter(“aaa“);
    }
    @Override
    // 执行过滤的核心方法,如果某资源在已经被配置到这个filter进行过滤的话,那么每次访问这个资源都会执行doFilter方法
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // ServletRequest/ServletResponse:每次在执行doFilter方法时 
        // web容器负责创建一个request和一个response对象作为doFilter的参数传递进来。
        // 该request个该response就是在访问目标资源的service方法时的request和response。
        // FilterChain:过滤器链对象,通过该对象的doFilter方法可以放行该请求
        System.out.println(“filter“);
        chain.doFilter(request, response);
    }
    @Override
    // filter销毁方法 当filter对象销毁时执行该方法 
    // 服务器关闭时filter销毁
    public void destroy() {
    }
}
// 3 配置 
 《filter》
        《filter-name》Filter01《/filter-name》
        《!-- 包名.类名 --》
        《filter-class》my.filter.MyFilter01《/filter-class》
    《/filter》
    《filter-mapping》
        《filter-name》Filter01《/filter-name》
        《!-- 拦截所有 --》
        《url-pattern》/*《/url-pattern》
        《dispatcher》《/dispatcher》
    《/filter-mapping》

java过滤器中实现Filter的类怎么写

web.xml配置文件
SessionFilter
com.qhit.system.tools.SessionFilter
SessionFilter
/*
java类
public class ConnFilter extends HttpServlet implements Filter {
public void doFilter(ServletRequest request,ServletResponse response,
FilterChain filterchain) throws IOException,ServletException
{
try
{
filterchain.doFilter(request,response);此处为过滤链 理解为请求通过该过滤继续前行 可在此处加上判断 如果TRUE执行该语句 有过FALSE 则直接跳转其他页面 常用于判断是否有权限进入某页面
}
finally
{
DBUtils.close();
}
}

filterchain(如何创建过滤器Filter)

本文编辑:admin
: filterchain,

更多文章:


早操的英语怎么读?早操的英文读音

早操的英语怎么读?早操的英文读音

本文目录早操的英语怎么读早操的英文读音做早操用英语怎么说早操英语怎么读 早操英语如何读早操的英语怎么读用morning exercises。例如:她每唤羡激天做早和袜操派伍。She does morning exercises every

2024年7月21日 12:31

什么叫源文件(目标文件和源文件有什么区别)

什么叫源文件(目标文件和源文件有什么区别)

本文目录目标文件和源文件有什么区别什么叫源文件(设计里的)源文件和原文件有什么不同请问:什么是源文件有什么作用什么是源文件源文件是什么什么叫源文件目标文件和源文件有什么区别目标文件和源文件的区别就在于理论的不同、文件类型的不同、作用上的不同

2024年7月2日 22:29

java pojo(java pojo)

java pojo(java pojo)

本文目录java pojoPO、POJO、BO、AO、VO、DTO、DO、DAOjava pojojava pojo是什么,让我们一起了解一下? POJO是Plain OrdinaryJava Object的缩写,通常指没有使用Entit

2024年7月9日 10:52

手机锁屏密码大全?四位数密码有哪些

手机锁屏密码大全?四位数密码有哪些

其实密码大全的问题并不复杂,但是又很多的朋友都不太了解手机锁屏密码大全,因此呢,今天小编就来为大家分享密码大全的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录手机锁屏密码大全四位数密码有哪些6位数的密码有哪些数字

2024年9月10日 01:15

javascript定时器(如何在JavaScript中使用定时器)

javascript定时器(如何在JavaScript中使用定时器)

本文目录如何在JavaScript中使用定时器JavaScript中最多能调用多少个定时器javascript定时器如何暂停及继续js定时器怎么写js定时器只有在当前页面才会执行吗javascript定时器无法停止javascript 如何

2024年5月16日 06:48

electronic wechat(数字货币是什么意思 与支付宝,微信支付有什么不同)

electronic wechat(数字货币是什么意思 与支付宝,微信支付有什么不同)

本文目录数字货币是什么意思 与支付宝,微信支付有什么不同微信etc安全吗会不会被盗刷数字货币是什么意思 与支付宝,微信支付有什么不同央行数字货币,英文全称Digital Currency Electronic Payment, DC/EP是

2024年6月15日 18:12

爱心代码手机版用什么打开?oppo手机工程模式代码 这些代码让你更了解你的手机

爱心代码手机版用什么打开?oppo手机工程模式代码 这些代码让你更了解你的手机

本文目录爱心代码手机版用什么打开oppo手机工程模式代码 这些代码让你更了解你的手机方舟生存进化手机版代码我的世界怎么启动代码模式手机版爱心代码手机版用什么打开爱心代码手机版用浏览器打开。打开手机记事本,复制爱心代码。1、将复制的代码用浏览

2024年6月12日 16:57

sorted安卓版(Python中怎么向sorted()传递参数reverse=True)

sorted安卓版(Python中怎么向sorted()传递参数reverse=True)

本文目录Python中怎么向sorted()传递参数reverse=True如何在Google文档中按字母顺序排序深入理解python中的排序sortPython中怎么向sorted()传递参数reverse=True1、查看sorted(

2024年5月16日 10:10

一个介于0至5之间的字符串是什么(0和5之间的字符串是什么)

一个介于0至5之间的字符串是什么(0和5之间的字符串是什么)

各位老铁们好,相信很多人对一个介于0至5之间的字符串是什么都不是特别的了解,因此呢,今天就来为大家分享下关于一个介于0至5之间的字符串是什么以及0和5之间的字符串是什么的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文

2024年7月28日 12:06

VBA中如何使用and函数?Excel VBA系列之自定义函数

VBA中如何使用and函数?Excel VBA系列之自定义函数

大家好,关于vba函数很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于VBA中如何使用and函数的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录VBA中

2024年8月6日 01:21

python 数组赋值(python用for循环怎么给给数组赋值)

python 数组赋值(python用for循环怎么给给数组赋值)

本文目录python用for循环怎么给给数组赋值python 原来需要输入值给数组怎么改成直接给数组赋值啊,就是弄成像图二那样的Python中数组有类似C中指针吗 可以把一串数据赋值给数组 从数组第一个开始赋值python数组赋值pytho

2024年7月18日 07:45

数学ppt模板免费下载 素材(免费ppt模板在哪下载,找免费ppt模板)

数学ppt模板免费下载 素材(免费ppt模板在哪下载,找免费ppt模板)

本文目录免费ppt模板在哪下载,找免费ppt模板到哪里可以免费下载小学数学PPT课件啊免费ppt模板在哪下载,找免费ppt模板1.7PPT模板7***隐藏网址******隐藏网址*** 提取码: qup9 Microsoft Office

2024年6月24日 07:50

东莞plc编程培训机构(东莞市凭良技术培训怎么样)

东莞plc编程培训机构(东莞市凭良技术培训怎么样)

本文目录东莞市凭良技术培训怎么样东莞plc培训机构哪家最好电工哪里可以学习东莞智通的PLC培训课怎么样值得不谁知道东莞哪里有PLC编程培训班东莞龙丰plc培训怎么样东莞市凭良技术培训怎么样教学质量好。东莞市厚街凭良远程职业培训学校是一家师资

2024年7月19日 10:53

libevent 多线程(libevent库base是多线程安全的吗)

libevent 多线程(libevent库base是多线程安全的吗)

本文目录libevent库base是多线程安全的吗win10下编程多线程问题libevent中 bufferevent_write在另外一个线程中使用,但是数据发送不出去,怎么解决libevent 回调 是多线程么谁用过libuv的echo

2024年6月26日 10:42

bigdecimal 加减乘除(bigdecimal加运算)

bigdecimal 加减乘除(bigdecimal加运算)

各位老铁们,大家好,今天由我来为大家分享bigdecimal 加减乘除,以及bigdecimal加运算的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目

2024年7月13日 14:18

reactor模式是设计模式么(什么是reactor模式和proactor模式)

reactor模式是设计模式么(什么是reactor模式和proactor模式)

大家好,关于reactor模式是设计模式么很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于什么是reactor模式和proactor模式的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站

2024年8月4日 02:45

点击鼠标左键出现右击的菜单(鼠标左右键都是右键)

点击鼠标左键出现右击的菜单(鼠标左右键都是右键)

本文目录鼠标左右键都是右键电脑鼠标右键没反映点击左键居然出现右键现象鼠标左键怎么变右键了怎么办单击左键出现右键菜单怎么办点击鼠标左键时会出现右键的菜单,请问是为什么鼠标点击左键时有时出现右键功能,换个鼠标依然这样鼠标点击左键会出现右键的菜单

2024年5月17日 19:50

detachment(电影超脱detachment经典的英文台词)

detachment(电影超脱detachment经典的英文台词)

本文目录电影超脱detachment经典的英文台词Dota2detachment是谁 LBZS战队五号位detachment介绍detachment怎么读,什么意思电影超脱detachment经典的英文台词 电影《超脱》是由托尼·凯耶执导,

2024年7月21日 04:42

legacy(legacy是什么意思 解析legacy一词的含义)

legacy(legacy是什么意思 解析legacy一词的含义)

本篇文章给大家谈谈legacy,以及legacy是什么意思 解析legacy一词的含义对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录leg

2024年9月8日 18:05

怎么设置网站(iis怎么配置网站)

怎么设置网站(iis怎么配置网站)

大家好,如果您还对怎么设置网站不太了解,没有关系,今天就由本站为大家分享怎么设置网站的知识,包括iis怎么配置网站的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录iis怎么配置网站网页的站点怎么设要怎么设置才能让电

2024年9月29日 11:05

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2342
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1735
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1168
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1164
标签列表

热门搜索