当前位置: 代码迷 >> JavaScript >> jsp取验证码取上回验证码解决思路
  详细解决方案

jsp取验证码取上回验证码解决思路

热度:112   发布时间:2013-10-14 12:54:46.0
jsp取验证码取上次验证码解决思路

在做项目的时候吧,遇到了验证码的问题,每次取都是上次生成的验证码, 网上找了很多的资料终于解决了的,整理了一下:

1、首先创建一个生成验证码的java普通类;
2、然后再jsp页面中引入这个类,例如:
<%@page?contentType="image/jpeg"%>
<%@?page?import="java.io.OutputStream"%>
<jsp:useBean?id="image"?scope="page"?class="ValideCode"?/>
<%
????OutputStream?os=response.getOutputStream();??
????String?str=image.getValideCode(80,35,os);
????os.flush();??
????os.close();??
????os=null;??
????response.flushBuffer();??
????out.clear();??
????out?=?pageContext.pushBody();??
??//?将认证码存入SESSION
????session.setAttribute("valideCode",?str);?
%>
然后再存入session;
3、然后再service类(比如Servlet、Controller)里面取出session存入到页面,然后呢,再在页面中取出,例如:
<!--WizRtf2Html Charset=0 -->@RequestMapping(value?=?"/register")
????public?void?register(Model?model,?@ModelAttribute?User?user,?HttpSession?session)?{

????????model.addAttribute("valideCode",?session.getAttribute("valideCode"));

}
然后再页面调用这个方法,例如:
<!--WizRtf2Html Charset=0 -->????????$.ajax({
????????????????????type?:?'POST',
????????????????????url?:?'/../register',
????????????????????dataType?:?'json',
????????????????????success?:?function(data){
????????????????????????console.log("data:{}",data.valideCode);
????????????????????????if("输入验证码的Input输入框"===data.valideCode){
????????????????????????????console.log("验证码正确");
????????????????????????}
????????????????????}
????????????});

?

按照上面的方法就可以解决页面中每次session取出都是上一个session的错误了的!
  相关解决方案