项目背景:
项目需求来自电商卖家管理自己的商品和店铺,以及最终的前台显示。整个项目中我负责技术的选型,数据库的设计和最后的交付测试。总共有三轮迭代,目前第二轮刚刚结束。迭代周期为7-8天。结合在做这个项目过程中的感受将大家都熟知却很少真正做到的内容整理出来:项目结构的四重验证。
一、web页面验证
本项目既有html也有jsp,javascript,css样式自然少不了。但开发人员关注最多是页面输入内容的校验,总结如下:
1、非空内容验证,如果输入空值则不允许提交的控制层
2、数字内容验证,如果内容为数字必须保证用户不能输入字符
3、电话,IP,邮箱,可能有的其它约定
通过页面校验保证到后台的数据鲁棒性提高。
二、控制层验证
本项目控制层采用WebWork开发,其验证内容包括前台所有的验证,另外还要考虑一些为服务层提供的一些数据验证,总结如下:
1、用户是否登录,或者登录后是否已经失效
2、用户是否有操作角色
3、必要数据,如Id,名称是否为空
4、不允许重复的数据是否存在
5、数据是否科学,如开始日期必须小于结束日期,开始金额必须小于结束金额
6、需要整型的数据是否为字符串
7、字符长度验证
以上还要根据具体需求来考量,当所有验证都通过后,就可以进入服务层
三、服务层验证
服务层,一般处理一些业务逻辑,并调用持久层代码同数据库交互,其需要考虑的验证同控制层。
四、数据库层验证
这是系统的最后一道关口,通过定义约束条件来限制,比如非空约束,唯一性约束,字符长度约束。
通过以上操作,我们能保证系统有很好的鲁棒性,不会因为用户的误操作产生一些莫名其妙的问题。另外,除了验证外,我们还要有详细的日志记录,当处理关键逻辑时,加日志,当出现异常时加日志,这样便于出现问题时能很快的定位和解决问题。以上是对WEB项目验证的一些总结,大家有其它的想法,请留言交流。