防止表单重复提交

防止表单重复提交

ID:40904517

大小:44.50 KB

页数:5页

时间:2019-08-10

防止表单重复提交_第1页
防止表单重复提交_第2页
防止表单重复提交_第3页
防止表单重复提交_第4页
防止表单重复提交_第5页
资源描述:

《防止表单重复提交》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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.   

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。