在设计和编写过滤器时应注意一些经验法则

来源:互联网 发布:sqlserver新建表语句 编辑:程序博客网 时间:2024/05/17 23:28

     在设计和编写过滤器时应注意一些经验法则。依照一些法则开发可能会大大缩短开发周期和节省大量的调试时间。下面将这些经验总结为四条:

    (1)创建具有安全线程的代码,因为每个java VM 只能具有过滤器的一个实例(除非同一过滤器被声明多次,并具有不同的名称或初始参数)。这样做可以确保doFilter()方法可以被多个线程同时调用。因此,过滤器代码必须具有线程安全性。即:

     1。doFilter()中应使用局部变量(除非是一个复杂的对象,此时可能包含指向实例变量的引用,如果是这种情况,解决方法如下所述)

     2。过滤器类中的实例变量只能是只读的,或者其访问必须同步。

     3。注意,调用任何方法或非同步的访问操作都将直接修改实例变量

    (2)小心地处理状态,借助doFilter()中的局部变量可以方便地管理状态信息。doFilter()方法中的预请求和响应后处理窗口都将对状态信息进行完全地访问。要在同一个链中的两个过滤器间传递消息,其中一个可以通过FilterConfig.getServletContext()方法将ServletContext结合起来

原创粉丝点击