Servlet过滤器详解与应用.pdfVIP

  • 0
  • 0
  • 约1.11万字
  • 约 30页
  • 2026-01-20 发布于北京
  • 举报

过滤器

JSP可以完成的功能Servlet都可以完成,但是Servlet具备的很多功能是JSP所不具备的(这

是SUN公司的策略,Servlet本来就是身兼两职,表现层和业务逻辑处理,所以说一个java程序做

两件事,代码是一说,单就out.println()输出就够难阅读的了,所以推出了JSP来替代表现层

的代码,所以功能性上肯定是Servlet更胜一筹)。

从使用上看,Servlet可以分为简单Servlet(之前所有的Servlet专题都是简单Servlet)、过滤

Servlet(过滤器)、和Servlet()3种。JSP可以完成的也只是简单的Servlet的功能。

下面我们就开始研究一下过滤Servlet的使用。

1.过滤器的基本概念

Filter是在Servlet2.3增加的新功能,当需要限制用户某些资源或者在处理请求时提前处

理某些资源时,即可使用过滤器来完成。

过滤器是以一种组件的形式绑定到Web应用程序当中的,与其他的Web应用程序组件不同的是,

过滤器采用“链”的方式进行处理(想想链表,想想的铁索连船),如下图所示:

图1-1过滤器的操作原理

可以看到,我们可以一次定义多个过滤器来处理不同的任务。

在没有使用过滤器以前,客户端都是直接请求Web资源的,但是一旦加入了过滤器,从图1-1

中就可以看到,所有的请求都是先交给过滤器处理,然后再相应的Web资源,可以达到对某些

资源的限制。

关于过滤器,从名字大家就可以明白这是一个什么东西,就好比你觉得咱们国家的饮用水质量太

差,自己家里弄了一个中空丝膜的净水器一样,要是对这个印象不是很清晰,或者没用过也不打紧,

再举个例子,你要坐飞机去米国参加OPENWORLD大会,你必须要买机票,否则人家不让你坐飞

机,其次,你就算拿着机票也要过安检,等于第一道安检,第二道登机口验票,第三道上了飞机空姐

要看你什么票做什么仓!这就是三道过滤器。没错,也许你已经体会到了,就是起一个安检作用。

2.实现过滤器

在Servlet中,如果要定义一个过滤器,则直接让一个类实现javax.servlet.Filter接口即可,此

接口下定义了3个操作方法,如下表1-1所示:

表1-1Filter接口定义的方法

No.方法类型描述

publicvoidinit(FilterConfigfilterConfig)

1普通过滤器初始化时调用(容器启动时初始

throwsServletException

化),可以通过FilterConfig取得配置

的初始化参数。

publicvoiddoFilter(ServeltRequest

2普通完成具体的过滤操作,然后通过

request,ServletResponse

response,FilterChainchain)throws

ServletException,IOException

FilterChain让请求继续向下传递

publicvoiddestroy()

3普通过滤器销毁时使用

表1-1中的3个方

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档