Python表单是交给前端处理还是struts2处理好?,pythonstruts2,刚才看了struts2的


刚才看了struts2的教程讲到处理结果类型 。

public String login(){        if(user.getUsername() == null || "".equals(user.getUsername())){            this.addFieldError("username","用户名不能为空");            return INPUT;        }        return SUCCESS;    }

表单提交一般是给前端处理的提示信息

<form method="post" action="login.do">        用户名:<input type="text" name="username" /><s:fielderror name="username"></s:fielderror>        密码:<input type="text" name="password" />        <input type="submit" value="提交" />    </form>

提示信息用了struts2的s:fielderror 标签。
这个不是前端来写更合适吗?

生产环境切记前端、后端都必须校验,因为只前端校验是可以有办法绕过的,后端必须做校验!!!

处于安全考虑,前后端必须都做校验。前端只是简单校验用户输入,懂一点的人想绕过前端校验太简单了。

我一般是用前端处理的,尽量把消耗分给客户端 减少服务器端压力

看你的整站风格是页面刷新风格还是局部刷新(Ajax风格)。

一般来说 Ajax 风格的体验要好一些。从前后端的分工来说,一般前端倾向于用户体验,后端倾向于业务和安全。

如果是新开发网站,我建议尽量前后分离,采用 SOA 的思想,通过 Ajax 来提交数据。一般过程是前端先对输入进行一次检查,通过 Ajax 提交到后端,后端校验输入,处理,返回结果,前端显示结果。

后端进行校验的目的是数据安全,前端进行检查(校验)的目的是为了用户体验,对明显有错的进行初步处理,减少网络等待时间。

千万不要信任前端验证的结果。

但是为了用户体验,前端验证不能少,为了数据安全,后端验证也不能少,所以验证逻辑可以至少要写两遍。

不过前端的可以简单点,可以忽略一些正常渠道不会出现的情况

前台模拟静态数据 比如<label>用户名或者密码错误!<label> 先可以修改为<label><s:fielderror/></label>
即可

记住一个原则:

后端必须校验

应该是前后都需要检验:
前端主要检查语法、简单逻辑(明确的规范要求)等等,减少提交错误
后端主要检查安全事务,重复。
例如,一个最简单的申请注册的网页
前端可以先检查:

后端(防攻击)

为了安全起见的,个人觉得即使前端进行处理,后端也要进行处理,然后前端那返回的数据显示。

编橙之家文章,

评论关闭