扫码关注官方订阅号
业精于勤,荒于嬉;行成于思,毁于随。
对于参数校验应该属于action层去做,比如struts的validator,action层做的好处是对错误输入作出最快响应。对于你的另一个问题,比如action层做了校验,service层以及dao层是否需要再次进行校验,这个肯定是不需要的,对于service和dao层来说数据来源就是action,如果action能够保证数据来源的正确性,那么service和dao就没必要再次校验,因为service和dao并不是对外提供的接口,而action是对外提供的接口。
个人观点:参数验证也是业务逻辑的一部分,应该放到service做
service一般不用做校验吧?action做过了当然不需要啊。当然,前端的任何请求不可信
建议在action层验证,有问题能及时反馈回去,题主所说的参数检验不知道包不包括参数过滤,建议做一层过滤吧
采用面向契约的编程,service层保护dao层,所以dao可以不做参数校验。controller层是入口,所以当然需要做参数校验,如果controller层是所有service层的入口,那么也可以由controller层来保护service层,service层不做校验。但是一般业务逻辑是放在service层的,service层会做业务上的参数校验,而且校验做在service层的好处是,如果不同controller层调用同一个service,那么业务校验不用写两遍,或者单独抽取校验方法。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
对于参数校验应该属于action层去做,比如struts的validator,action层做的好处是对错误输入作出最快响应。
对于你的另一个问题,比如action层做了校验,service层以及dao层是否需要再次进行校验,这个肯定是不需要的,对于service和dao层来说数据来源就是action,如果action能够保证数据来源的正确性,那么service和dao就没必要再次校验,因为service和dao并不是对外提供的接口,而action是对外提供的接口。
个人观点:
参数验证也是业务逻辑的一部分,应该放到service做
service一般不用做校验吧?action做过了当然不需要啊。
当然,前端的任何请求不可信
建议在action层验证,有问题能及时反馈回去,题主所说的参数检验不知道包不包括参数过滤,建议做一层过滤吧
采用面向契约的编程,service层保护dao层,所以dao可以不做参数校验。controller层是入口,所以当然需要做参数校验,如果controller层是所有service层的入口,那么也可以由controller层来保护service层,service层不做校验。但是一般业务逻辑是放在service层的,service层会做业务上的参数校验,而且校验做在service层的好处是,如果不同controller层调用同一个service,那么业务校验不用写两遍,或者单独抽取校验方法。