刚才看了struts2的教程讲到处理结果类型 。
public String login(){
if(user.getUsername() == null || "".equals(user.getUsername())){
this.addFieldError("username","用户名不能为空");
return INPUT;
}
return SUCCESS;
}
表单提交一般是给前端处理的提示信息
提示信息用了struts2的s:fielderror 标签。
这个不是前端来写更合适吗?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
看你的整站风格是页面刷新风格还是局部刷新(Ajax风格)。
一般来说 Ajax 风格的体验要好一些。从前后端的分工来说,一般前端倾向于用户体验,后端倾向于业务和安全。
如果是新开发网站,我建议尽量前后分离,采用 SOA 的思想,通过 Ajax 来提交数据。一般过程是前端先对输入进行一次检查,通过 Ajax 提交到后端,后端校验输入,处理,返回结果,前端显示结果。
后端进行校验的目的是数据安全,前端进行检查(校验)的目的是为了用户体验,对明显有错的进行初步处理,减少网络等待时间。
记住一个原则:
后端必须校验
我一般是用前端处理的,尽量把消耗分给客户端 减少服务器端压力
前台模拟静态数据 比如<label>用户名或者密码错误!<label> 先可以修改为<label><s:fielderror/></label>
即可
千万不要信任前端验证的结果。
但是为了用户体验,前端验证不能少,为了数据安全,后端验证也不能少,所以验证逻辑可以至少要写两遍。
不过前端的可以简单点,可以忽略一些正常渠道不会出现的情况
为了安全起见的,个人觉得即使前端进行处理,后端也要进行处理,然后前端那返回的数据显示。
处于安全考虑,前后端必须都做校验。前端只是简单校验用户输入,懂一点的人想绕过前端校验太简单了。
生产环境切记前端、后端都必须校验,因为只前端校验是可以有办法绕过的,后端必须做校验!!!
应该是前后都需要检验:
前端主要检查语法、简单逻辑(明确的规范要求)等等,减少提交错误
后端主要检查安全事务,重复。
例如,一个最简单的申请注册的网页
前端可以先检查:
用户名是否符合要求(不为空,字符数要求,不包含特定字符...)
密码是否符合要求(不为空,字符数要求,格式要求...)
...
后端(防攻击)
用户名是否重名
密码是否符合要求
注册频次限制
...