OSChina 的全局过滤器源码

源码如下,源码中的 RequestContext 代码请看 这里。 很多人很好奇,但其实真的没有任何特殊之处,呵呵
标签: OSCHINA  filter

[1].[代码] java代码 跳至 [1]

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package my.mvc;
 
import java.io.IOException;
 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import my.db.DBManager;
 
/**
  * 全局过滤器
  * @author Winter Lau
  * @date 2010-1-13 下午08:36:18
  */
public class ControllerFilter implements Filter {
 
     private ServletContext context;
     
     /**
      * 过滤器初始化
      */
     public void init(FilterConfig cfg) throws ServletException {
         this .context = cfg.getServletContext();
     }
 
     /**
      * 执行过滤操作
      */
     public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
         throws IOException, ServletException
     {
         HttpServletRequest request = (HttpServletRequest)req;
         HttpServletResponse response = (HttpServletResponse)res;
         RequestContext rc = RequestContext.begin( this .context, request, response);
         
         if (rc.uri().indexOf( "/.svn/" )>= 0 ){
             rc.forbidden();
             return ;
         }
 
         try {
             chain.doFilter(rc.request(), rc.response());
         } finally {
             if (rc!= null ) rc.end();
             DBManager.closeConnection();
         }
     }
 
     /**
      * 过滤器释放资源
      */
     public void destroy() {
     }
 
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值