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的错误了的!