Tom小猫,让我看清你的五脏六腑4(转)

Tom小猫,让我看清你的五脏六腑4(转)
2007-01-29 19:53

Servlet过滤器
在Java Servlet2.3中定义,能够对Servlet容器的请求和响应对象进行检查和修改。所有的过滤器类都必须实现javax.servlet.Filter接口,其中有三个需要实现的方法
init(FilterConfig)-一个初始化方法,Servlet容器创建过滤器类后将调用这个方法,在此方法中可以读取web.xml文件中的Servlet过滤器的初始化参数。
doFilter(ServletRequest,ServletResponse,FilterChain)-实际的过滤操作,FilterChain参数用于访问后面的过滤器。
destroy()-用来释放某些Servlet过滤器占用的资源。

下面是一个解决中文乱码问题很有用的一个过滤器:

 

 

public   class  SetCharacterEncodingFilter implements Filter  {
    
    
public void destroy() {}
  
    
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain)
       throws IOException, ServletException 
{

    request.setCharacterEncoding(
"GB2312");
    chain.doFilter(request, response);
    }


    
public void init(FilterConfig filterConfig) throws ServletException {}
}

发布Servlet过滤器-在web.xml在文件中加入<filter>元素和<filter-mapping>元素

下面的例子中Servlet过滤器会过滤所有的URL:

< filter >  
< filter-name > Set Character Encoding </ filter-name >  
< filter-class > SetCharacterEncodingFilter </ filter-class >  
</ filter >  
< filter-mapping >  
< filter-name > Set Character Encoding </ filter-name >
< url-pattern > /* </ url-pattern >  
</ filter-mapping >

串连Servlet过滤器
多个Servlet过滤器可以协同工作,Servlet容器将根据它们在web.xml中定义的先后顺序,依次调用它们的doFilter()方法。
工作流程如下:
 Code1; // 表示调用chain.doFilter()前面的代码
 chain.doFilter();  // 表示调用下一个过滤器的doFilter()方法
 Code2; // 表示调用chain.doFilter()后面的代码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值