网站大量收购独家精品文档,联系QQ:2885784924

javaweb中的过滤器概述.docx

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
—高级软件人才实作培训专家! 北京传智播客教育 day15 过滤器(Filter) 过滤器概述 1 什么是过滤器 过滤器JavaWeb三大组件之一,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的。 当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter“放行”,那么会继承执行用户请求的Servlet;如果Filter不“放行”,那么就不会执行用户请求的Servlet。 其实可以这样理解,当用户请求某个Servlet时,Tomcat会去执行注册在这个请求上的Filter,然后是否“放行”由Filter来决定。可以理解为,Filter来决定是否调用Servlet!当执行完成Servlet的代码后,还会执行Filter后面的代码。 2 过滤器之hello world   其实过滤器与Servlet很相似,我们回忆一下如果写的第一个Servlet应用!写一个类,实现Servlet接口!没错,写过滤器就是写一个类,实现Filter接口。 public class HelloFilter implements Filter { public void init不去理会它 (FilterConfig filterConfig) throws ServletException {} public void doFilter当访问被拦截资源时,doFilter()方法会被调用!我们先不去管它的参数是什么作用! (ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println(Hello Filter); } public void destroy不去理会它 () {} } 第二步也与Servlet一样,在web.xml文件中部署Filter: filter filter-namehelloFilter/filter-name filter-classcn.itcast.filter.HelloFilter/filter-class /filter filter-mapping filter-namehelloFilter/filter-name url-pattern/index.jsp指定要拦截的路径!当用户访问index.jsp页面时,HelloFilter就会被执行 /url-pattern /filter-mapping 应该没有问题吧,都可以看懂吧! OK了,现在可以尝试去访问index.jsp页面了,看看是什么效果! 当用户访问index.jsp页面时,会执行HelloFilter的doFilter()方法!在我们的示例中,index.jsp页面是不会被执行的,如果想执行index.jsp页面,那么我们需要放行! public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println(filter start...);执行index.jsp之前执行 chain.doFilter(request, response);放行!表示执行index.jsp System.out.println(filter end...);在执行index.jsp后执行这一句 }   有很多同学总是错误的认为,一个请求在给客户端输出之后就算是结束了,这是不对的!其实很多事情都需要在给客户端响应之后才能完成! 过滤器详细 1 过滤器的生命周期 我们已经学习过Servlet的生命周期,那么Filter的生命周期也就没有什么难度了! init(FilterConfig):在服务器启动时会创建Filter实例,并且每个类型的Filter只创建一个实例,从此不再创建!在创建完Filter实例后,会马上调用init()方法完成初始化工作,这个方法只会被执行一次; doFilter(ServletRequest req,ServletResponse res,FilterChain chain):这个方法会在用户每次访问“目标资源(url-patternindex.jsp/url-pattern)”时执行,如果需要“放行”,那么需要调用FilterChain的doFilter(ServletReq

文档评论(0)

花仙子 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档