Board logo

标题: 通用验证系统(6) [打印本页]

作者: look_w    时间: 2018-7-15 13:38     标题: 通用验证系统(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());   
}






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0