Servlet2.5 规范 学习笔记(续一)

总结时间:2009-03-13

 

1     javax.servlet

1.1      接口

     该包下面一共有14个接口对象,11个类(其中有两个为异常处理类ServletExceptionUnavailableException

1.1.1   Filter 接口描述

首先对Filter有一个大概认识是很重要,你可能会问为什么呢?如果你不知道你这个东西可以用来干什么,你就不知道怎么去学习,了解也不够那么深刻。每一个规范或者技术的产生应该都是为了解决特定或普遍的问题。

Filte是源数据和目的数据之间起过滤作用的中间组件,当目标资源对请求作出

响应时候,容器同样会将响应先转发给过滤器,再过滤器中,你可以对响应的内容进行

相应的处理,然后再将响应发送到客户端,该接口的实现只初始化一次,多线程公用。从Servlet 2.3规范起定义了该接口,使用Filter可以对进行用户权限认证、对请求进行记录和审核,对加密请求和响应等进行处理。

具体的过滤器都必须实现Filter接口,该接口有destroy() doFilter(ServletRequest request, ServletResponse response, FilterChain chain) init(FilterConfig filterConfig)有三个方法需要实现,简单介绍一下这三个方法:

destroy():通过方法名可以猜测出是容器准备销毁过滤器,过滤器应该进行的相关操作,一旦所有还在执行doFilter()方法的线程执行完毕,或者执行doFilter方法超时,该方法就会被调用一次。一旦容器调用destroy()方法后(只要调用了destroy()方法不管该方法是否执行完毕),容器就不会在调用该Filter实例的doFilter方法了。使用destroy()方法可以主动释放内存,文件处理等。

doFilter(ServletRequest request, ServletResponse response, FilterChain chain): 当客户端请求目标资源的时候,容器就会调用与这个目标资源相关联的过滤器的doFilter()方法。在特定的操作完成后,可以调用chain.doFilter(request,response)将请求传给下一个过滤器(或目标资源),也可以直接向客户端返回响应信息,或者利用RequestDispatcherforward()include()方法,以及HttpServletResponsesendRedirect()方法将请求转向到其他资源。需要注意的是,这个方法的请求和响应参数的类型是ServletRequestServletResponse,也就是说,过滤器的使用并不依赖于具体的协议。

init(FilterConfig filterConfig):一旦过滤器被被实例化以后,容器调用该方法初始化过滤器相关参数,正确的初始化后,容器才能正常工作(这里所说的正常是指没有抛出ServletException类型的异常信息)。这里需要注意的是初始化抛出ServletException异常或初始化超时该过滤器都不可以正常的工作。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值