您的位置:首页 > 娱乐 > 八卦 > 2021年建站赚钱_如何创建一个公司网站_网易搜索引擎_日照seo公司

2021年建站赚钱_如何创建一个公司网站_网易搜索引擎_日照seo公司

2025/1/8 18:05:06 来源:https://blog.csdn.net/m0_75163045/article/details/143469314  浏览:    关键词:2021年建站赚钱_如何创建一个公司网站_网易搜索引擎_日照seo公司
2021年建站赚钱_如何创建一个公司网站_网易搜索引擎_日照seo公司

验证码

地址:

概述


介绍:

验证码功能位于cn.hutool.captcha包中,核心接口为ICaptcha,此接口定义了以下方法:

  • createCode 创建验证码,实现类需同时生成随机验证码字符串和验证码图片
  • getCode 获取验证码的文字内容
  • verify 验证验证码是否正确,建议忽略大小写
  • write 将验证码写出到目标流中

操作

一、引入jar包

在 web-inf 目录下引入

二、创建servlet

在servlet里获取验证码

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//定义图形验证码的长、宽、验证码字符数、干扰元素个数CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(200, 100, 4, 20);//CircleCaptcha captcha = new CircleCaptcha(200, 100, 4, 20);//图形验证码写出,可以写出到文件,也可以写出到流//captcha.write("d:/circle.png");//验证图形验证码的有效性,返回boolean值//System.out.println(captcha.verify("1234"));//写出到浏览器(Servlet输出)//获取验证码的内容// System.out.println(captcha.getCode());captcha.write(response.getOutputStream());}

三、在前端需要加验证码的地方 

  img  访问servlet 

<div class="yanzheng"><input type="text" placeholder="验证码" maxlength="25" class="code"><img src="CaptchaServlet" alt="" onclick="this.src=this.src+'?'"></div>

实现点击验证码,验证码发生变化:

在 jquery 中,有

 $("img").click(function(){alert(1)})

这里简单,直接在body加

<img src="CaptchaServlet" alt="" onclick="CaptchaServlet">

可以这样,但是第二次和第一次名字一样,不会发生变化。

故应用 ? 实现

<img src="CaptchaServlet" alt="" onclick="this.src=this.src+'?'">

三、设置 session 传前端获取到的验证码值

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//定义图形验证码的长、宽、验证码字符数、干扰元素个数CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(200, 100, 4, 20);//CircleCaptcha captcha = new CircleCaptcha(200, 100, 4, 20);//图形验证码写出,可以写出到文件,也可以写出到流//captcha.write("d:/circle.png");//验证图形验证码的有效性,返回boolean值//System.out.println(captcha.verify("1234"));//写出到浏览器(Servlet输出)//获取验证码的内容// System.out.println(captcha.getCode());HttpSession session = request.getSession(true);session.setAttribute("verifycode", captcha.getCode());captcha.write(response.getOutputStream());}

四、在后端登录servlet里接收session值,判断

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//		设置后端给前端返回的数据为json格式response.setContentType("text/json;charset=utf-8");//获取前端传过来的参数String code=request.getParameter("code");HttpSession session = request.getSession(false);if(session!=null) {String savedcode=(String) session.getAttribute("verifycode");if(savedcode!=null) {if(savedcode.equalsIgnoreCase(code)) {String acc=request.getParameter("account");String pss=request.getParameter("password");//拼接sqlString sql="select count(*) from login where account=\""+acc+"\" and password=\""+pss+"\"";//查找int num=MysqlUtil.getCount(sql);//返回的数据String res="{\"code\":0,\"message\":\"登陆失败\"}";if(num>0) {res="{\"code\":1,\"message\":\" 登陆成功\"}";//登陆成功session.setAttribute("account", acc);}//返回数据response.getWriter().write(res);}else {String res="{\"code\":-1,\"message\":\"验证码错误,请重新输入\"}";response.getWriter().write(res);}}}}

五、js接收返回值

实现验证码错误  清空验证码输入框的值

 //发起请求$.ajax({url:"LoginServlet",//请求路径type:"get",//请求方式data:{account,password,code},success:function(value){alert(value.message)if(value.code==1){location.href="RouterServlet?path=登录页面后"}else if(value.code==-1){//验证码错误$(".code").val("")$("img").click()}else{//登录失败清除输入框中的信息$(".account").val("")$(".password").val("")}},error:function(){alert("登录的请求失败")}})

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com