欢迎来到天天文库
浏览记录
ID:40904517
大小:44.50 KB
页数:5页
时间:2019-08-10
《防止表单重复提交》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、服务器端写程序防重复提交实现原理:当用户提交的时候,系统首先需要生成一个随机号,在服务器端进行保存并在jsp表单中绑定这个生成的随机号,当jsp表单提交时服务器端接收用户提交的这个随机号然后与服务器端保存的随机号进行对比,如果随即号相同的话,执行提交操作,并把服务器端保存的随机号销毁。如果不同的话提示用户重复提交。示例:生成随机数viewplain1.package cn.itcast.form; 2. 3.import java.io.IOException; 4.import java.security.MessageDige
2、st; 5.import java.security.NoSuchAlgorithmException; 6.import java.util.Random; 7.import java.util.UUID; 8. 9.import javax.servlet.ServletException; 10.import javax.servlet.http.HttpServlet; 11.import javax.servlet.http.HttpServletRequest; 12.import javax.servlet
3、.http.HttpServletResponse; 13. 14.import sun.misc.BASE64Encoder; 15. 16.public class FormServlet extends HttpServlet { 17. 18. public void doGet(HttpServletRequest request, HttpServletResponse response) 19. throws ServletException, IOException { 1.
4、 2. String token = TokenProcessor.getInstance().getToken(); 3. request.getSession().setAttribute("token", token); 4. request.getRequestDispatcher("/form.jsp").forward(request, response); 5. } 6. 7. public void doPost(HttpServletReq
5、uest request, HttpServletResponse response) 8. throws ServletException, IOException { 9. 10. doGet(request, response); 11. } 12.} 13. 14.//令牌(随机数生成器) 15.class TokenProcessor{ 16. 17. /** 18. * 1.把构造方法私有 19. * 2.自己创建一个对象 20
6、. * 3.定义一个方法,让别人获取这个对象 21. * 22. */ 23. 24. private TokenProcessor(){} 25. private static final TokenProcessor instance = new TokenProcessor(); 26. public static TokenProcessor getInstance(){ 27. return instance; 28. } 29.
7、 30. public String getToken(){ 31. 32. String token = System.currentTimeMillis() + new Random().nextInt(1000000) + ""; 33. 1. //md5 数据指纹 消息摘要 2. try { 3. MessageDigest digest = MessageDigest.getInstance("md5")
8、; 4. byte md5[] = digest.digest(token.getBytes()); //任意的16个字节 3434 5. 6.
此文档下载收益归作者所有