javaweb三大组件之Filter(一)

原创 2016年08月29日 14:49:37

过滤器

1.它会在一组资源(jsp,servlet,.css,html等)的前面执行

2.它可以让请求得到目标资源,也可以不让请求达到

*过滤器有拦截的能力


过滤器如何编写

1.创建一个类实现javax.servlet.Filter

2.接下来再web.xml中进行配置


(假设存在一个AServlet,我们对AServlet进行过滤的配置如下)

<filter>

<filter-name>AFilter(过滤器名称)</filter-name>

<filter-class>cn.hpy.web.filter.AFilter(包名+类名)</filter-class>

</filter>

<filter-mapping>

<filter-name>AFilter</filter-name>

<url-pattern>/AServlet(选定的Servlet)</url-pattern>

**也可以用这种

<servlet-name>AServlet(没有斜杠是因为他是名字,并不是路径)</servlet-name> 

</filter-mapping>


Filter接口中

init(FilterConfig arg0)是在创建之后马上调用

FilterConfig 中有几个方法:

   * 获取初始化参数:getInitParameter()
   * 获取过滤器名称:getFilterName()
  *** 获取appliction:getServletContext()

doFilter(ServletRequest arg0,ServletResponse arg1,FilterChain arg0);

FilterChain中也有一个doFilter(ServletRequest arg0,ServletResponse arg1);

FilterChain中的doFilter(ServletRequest arg0,ServletResponse arg1) 实现放行 转到AServlet后再回到doFilter(ServletRequest arg0,ServletResponse arg1,FilterChain arg0);中

相当于执行了Servlet中的service方法



多过滤器


FilterChain#doFilter()方法:
  执行目标资源,或是执行下一个过滤器!如果没有下一个过滤器那么执行的是目标资源,如果有,那么就执行下一个过滤器!


*多个过滤器的执行顺序
*<filter-mapping>的配置顺序决定了过滤器的执行顺序!


四种拦截方式

过滤器的四种拦截方式


  <dispatcher>REQUEST</dispatcher>默认的!
  <dispatcher>FORWARD</dispatcher>
  <dispatcher>INCLUDE</dispatcher>
  <dispatcher>ERROR</dispatcher>


在<filter-mapping>中进行配置!


JavaWeb三大组件之Filter

1 什么是过滤器 过滤器JavaWeb三大组件之一,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的。 当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如...
  • xxssyyyyssxx
  • xxssyyyyssxx
  • 2015年11月24日 10:11
  • 1210

JavaWeb三大组件之Listener

三大组件:Servlet、 Listener、Filter Java中用到监听器的地方:AWT、SAX,监听器中肯定有事件源、事件、监听器。监听器注册到事件源,当事件源发生某件特定的事儿的时候,就触发...
  • xxssyyyyssxx
  • xxssyyyyssxx
  • 2015年11月24日 08:13
  • 2079

javaweb三大组件之Servlet

* Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener)   * Servlet是用来处理客户端请求的动态资源   * Servlet的任务有:     > 获...
  • z498596750
  • z498596750
  • 2016年09月16日 12:55
  • 1987

JavaWeb三大组件(Servlet、Filter、Listener)

JavaWeb三大组件指的是:Servlet、Filter、Listener,这三个组件在JavaWeb开发中分别提供不同的功能,然而很多人可能只用过其中一个或者两个(Servlet、Filter,比...
  • xiaojie119120
  • xiaojie119120
  • 2017年06月15日 10:17
  • 1919

javaweb基本组件之filter的使用

1、filter在web容器中的作用主要有以下这些: ①对用户抛过来的请求进行字符编码上的转换,及为对用户的响应对象填充公用的头信息; ②验证用户的身份是否已经是登录状态和访问权限的控制; ③其...
  • YZCSzhiYZTY
  • YZCSzhiYZTY
  • 2015年06月15日 12:09
  • 206

JavaWeb三大组件之一Servlet【response讲解】

给出一张图请求响应流程图:responseresponse概述response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResp...
  • Marvel__Dead
  • Marvel__Dead
  • 2017年05月26日 16:57
  • 615

JavaWeb三大组件之一Servlet【GenericServlet抽象类】

GenericServletGenericServlet概述GenericServlet是Servlet接口的实现类,我们可以通过继承GenericServlet来编写自己的Servlet。下面是Ge...
  • Marvel__Dead
  • Marvel__Dead
  • 2017年05月24日 14:14
  • 440

JAVAWEB三大组件之过滤器

一、过滤器定义及其作用 1、filter为javaweb三大组件之一、filter与servlet在很多的方面极其相似,但是也有不同,例如filter和servlet一样都又三个生命周期方法,同时他...
  • zhaoliyou
  • zhaoliyou
  • 2016年09月06日 20:00
  • 490

JavaWeb笔记——三大组件之过滤器

过滤器JavaWeb三大组件之一,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的。  当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter...
  • pwc1996
  • pwc1996
  • 2015年08月25日 16:21
  • 372

JavaWeb三大组件之一Servlet【访问量统计-ServletContext的应用】

需求一个项目中所有的资源被访问都要对访问量进行累加!简单实现创建一个int类型的变量,用来保存访问量,然后把它保存到ServletContext的域中,这样可以保存所有的Servlet都可以访问到! ...
  • Marvel__Dead
  • Marvel__Dead
  • 2017年05月26日 10:37
  • 586
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javaweb三大组件之Filter(一)
举报原因:
原因补充:

(最多只允许输入30个字)