首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

通用验证系统(6)

通用验证系统(6)

6. 遗留问题 我们说 commons-validator                是个通用的验证系统,它确实是个不错的东西,但是要想在实际系统中使用它还需要一定的工作,特别是想利用它的客户端验证时尤为如此。所幸的是 struts                项目为我们使用这些这个验证系统作了很经典的示范,本人认为有必要把 struts 项目的这些工作移到 commons-validator                项目中来,这样它的可用性将大大提高。
7. 总结 作为一个验证的通用框架,有些功能不是立即可用的,它需要开发者再次包装。Struts 就重新包装了 commons-validator                的客户端验证机制,使得这种机制在开发 struts 程序来说是立即可用的。有了这些包装,剩下的任务就是开发 validatoraction                来满足不同的验证要求了。另外 struts 还提供了验证和某个正则表达式匹配的输入,它使用了 commons-validator 的 perl5                正则表达式匹配机制。
在开发 web 信息系统时,除了验证输入外,我们还需要注意数据的输出。Web 的界面是 html                代码,而且这个代码是由浏览器来解释的,如果我们的内部数据包括了 html 代码的保留字,轻一点危害是破坏浏览器对 html                的解释,搞坏了我们的最后界面;重一点的是引入安全隐患,瘫痪信息系统。下面这段代码可用于过滤 html 保留字,学着 URLEncoding                的样,我把它称为 HTMLEncoding:
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
public static String HTMLEncoding (String value) {   
    if (value == null)        
  return (null);     
  char content[] = new char[value.length()];   
  value.getChars(0, value.length(), content, 0);
  StringBuffer result = new StringBuffer(content.length + 50);     
  for (int i = 0; i < content.length; i++) {        
    switch (content) {         
    case '<':               
        result.append("<");            
        break;      
    case '>':        
        result.append(">");  
        break;         
    case '&':        
        result.append("&");   
        break;         
    case '"':        
        result.append(""");      
        break;         
    case '\'':      
        result.append("'");  
        break;         
   注释与缺省值 :        
    result.append(content);
}     
}     
return (result.toString());   
}

返回列表