1. 使用JS让按钮在点击一次后禁用(disable)。采用这种方法可以防止多次点击的发生,实现方式较简单。缺点是若客户端禁止JavaScript脚本,则失效。

2. 在提交成功后执行页面重定向(redirect)。转到提交成功信息页面。特点:避免F5重复提交,消除浏览器前进和后退按钮可导致的同样问题。
3. 表单隐藏域中存放session(表单被请求时生成的标记)。采用此方法在接收表单数据后,检查此标志值是否存在,先进行删除,然后处理数据; 若不存在,说明已提交过,忽略本次提交。
4. 数据库唯一索引约束(最有效的防止重复数据的方法)。
最常用的方法就是利用token。即:
1、在生成页面的时候生成一个token(随机字符串),并把它同时写入表单的某个hidden中,和服务端的session中。
2、客户端提交表单到服务器时,比对表单中的token与session中的token是否一致。若不一致则认为是无效的请求。
3、不管第2步的校验是否通过,token只要使用一次后就立即作废(即:从session中销毁)。同时token也可以关联时间信息,超时后也自动作废。这样,即便客户端重复提交,也只有第一次的请求能够成功。
在学习common lisp 连接mysql的开始阶段,用 (ql:quickload 'cl-mysql)后报错,大意是找不到外部链接程序libmysql.dll
1.通过mysql官网 这个链接下下载安装文件
2.在 C:\Program Files\MySQL\MySQL Connector C 6.1\lib 这个文件夹中找到 libmysql.dll 文件
3.复制到 C:\Windows\System32或者 C:\Windows\SysWOW64 中,文件夹选择看选择下载的是32位还是64位
4.运行 (ql:uninstall 'cl-mysql) ,之后运行(ql:quickload 'cl-mysql) 返回 (cl-mysql) 表示安装成功
原因和排查方法如下
1、操作系统问题:解决办法存在漏洞或bug,可通过修复漏洞或重装系统来解决;
2、软件兼容性问题:解决办法有些软件有系统要求或环境要求,比如系统要是32或64位、dot net要哪个版本、jre需要哪个版本等等,这个问题只要参照软件说明设置就可以解决;
3、软件bug:解决办法软件有bug,此问题只能默哀了,只能期待软件开发商早点修复了。
4、硬件故障:解决办法维修或更换;
5、内存不足:解决办法内存空间溢出,关闭一些程序,或加大内存