使用“过滤器”的优点

使用“过滤器”的优点


        想象已经开发好应用程序的主要商业功能了, 但现在有几个需求出现:

(1)  针对所有的Servlet, 产品经理想了解从请求到响应之间的时间差.

(2)  针对某些特定的页面, 客户希望只有特定几个用户才可以浏览.

(3)  基于安全方面的考量, 用户输入的特定字符必须过滤并替换为无害的字符.

(4)  请求与响应的编码从Big5改用UTF-8

        以第一个需求而言, 也许你的直觉就是, 打开每个Servlet, 在doXXX()开头与结尾取得系统时间, 计算时间差, 但如果页面有上百个或上千个, 怎么完成这些需求? 如果产品经理在你完成需求后, 又要求拿掉计算时间差的功能, 你怎么办?

        收到这些需求的你, 在急忙打开相关源代码文档进行修改之前, 请先分析一下这些需求:

(1)  运行Servlet的service()方法”前”, 记录起始时间, service()方法运行”后”, 记录终止时间并计算时间查.

(2)  运行Servlet的service()方法”前”, 验证是否为允许的用户.

(3)  运行Servlet的service()方法”前”, 对请求参数进行字符过滤并替换.

(4)  运行Servlet的service()方法”前”, 对请求与响应对象设置字符编码.

        经过以上分析, 可以发现这些需求, 可以在真正运行Servlet的service()方法”前”与Servlet的service()方法运行”后”中间进行实现.

        性能评测, 用户验证, 字符替换, 编码设置等需求, 基本上与应用程序的业务需求没有直接关系, 只是应用程序额外的服务元件之一. 只是段时间需要它而已, 不应该为了一时的需要而修改代码强加入原有业务流程中.

        因此, 如性能评测, 用户验证, 字符替换, 编码设置等需求, 应该设计为独立的元件, 随时可以加入应用程序中, 也随时可以移除, 或随时可以修改设置而不用修改原有的程序. 这类元件就像是个过滤器, 安插在Servlet与浏览器之间, 可以过滤请求与响应而作进一步的处理.


以上内容摘自:

《Servlet & JSP教学手册(第二版)》--林信良 著


Jan 6th, 2016

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值