JavaWeb表单重复提交和验证码

使用验证码解决表单重复提交问题。

谷歌kaptcha图片验证码:

3.将图片地址放到验证码标签内
<label>验证码:</label> <input class="itxt" type="text" name="code" style="width:130px;" id="code"/> <img id="code_img" alt="" src="kaptcha.jpg" style="float: right; margin-right: 40px;width:100px;height:40px;"> <br />
4.在服务器获取谷歌生成的验证码并与客户输入的验证码进行比较
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取session中的验证码 String token = (String)req.getSession().getAttribute(KAPTCHA_SESSION_KEY); //删除session中的验证码 req.getSession().removeAttribute(KAPTCHA_SESSION_KEY); String code = req.getParameter("code"); //获取用户名 String username = req.getParameter("username"); if(token != null && token.equalsIgnoreCase(code)) { System.out.println("保存到数据库"+ username); //比较用户名 // req.getRequestDispatcher("/ok.jsp").forward(req, resp);//表单重复提交 resp.sendRedirect("http://localhost:8080/tmp/ok.jsp"); }else { System.out.println("请不要重复提交表单"); } }
5.解决IE和火狐浏览器中验证码请求地址一致导致的缓存问题:请求地址添加时间戳作为参数


浙公网安备 33010602011771号