当前位置: 首页 > wzjs >正文

背景做网站公司自己注册一个网站要多少钱

背景做网站公司,自己注册一个网站要多少钱,腾讯云中使用wordpress,wordpress公司网站模板今天来带大家写一个小练习,我们使用Spring写一下验证码的小程序: 还是我们熟悉的步骤,需求分析很定义接口文档,前端还是直接模版王,哈哈,一会直接给大家,但是ajax还是需要我们自己写的&#xf…

今天来带大家写一个小练习,我们使用Spring写一下验证码的小程序:

还是我们熟悉的步骤,需求分析很定义接口文档,前端还是直接模版王,哈哈,一会直接给大家,但是ajax还是需要我们自己写的;

1,需求分析

我们后端需要提供1的服务有两个

1,生成验证码返回给前端

2,对于前端发来的验证码进行校验

2,接口文档

生成验证码的:

1,请求

/Captcha/get

2,参数

无,需要设置Session

3,响应

返回/image/ipeg

校验验证码的:

1,请求

/Captcha/check

2,参数

String captcha

3,响应 

boolean 类型

3,代码实现

我们先来准备工作,我们这次实现验证码要使用一个工具Hutool,我们进去官网,直接搜验证码,就有实现的功能了,我们直接拿来用,我们先导入lombok和hutool的依赖,

        </dependency><!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.30</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.38</version></dependency>

放pom文件中 

把前端代码放到这里,

<html lang="en"><head><meta charset="utf-8"><title>验证码</title><style>#inputCaptcha {height: 30px;vertical-align: middle; }#verificationCodeImg{vertical-align: middle; }#checkCaptcha{height: 40px;width: 100px;}</style>
</head><body><h1>输入验证码</h1><div id="confirm"><input type="text" name="inputCaptcha" id="inputCaptcha"><img id="verificationCodeImg" src="/admin/captcha" style="cursor: pointer;" title="看不清?换一张" /><input type="button" value="提交" id="checkCaptcha"></div><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script><script>$("#verificationCodeImg").click(function(){$(this).hide().attr('src', '/admin/captcha?dt=' + new Date().getTime()).fadeIn();});$("#checkCaptcha").click(function () {alert("验证码校验");});</script>
</body></html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>验证成功页</title>
</head>
<body><h1>验证成功</h1>
</body>
</html>

先来model层的;

 

@ConfigurationProperties(prefix = "captcha")
@Configuration
@Data
public class CaptchaProperties {private Integer width;private Integer height;private Session session;@Datapublic static class Session{private String key;private String data;}
}

 我们把验证码的参数都写成配置文件了,这样顺便也能带上Session,而且在配置文件中修改的好处不必多说了吧,还记得这些注解吗,@data是lombok的那些重写的方法都帮我们写了,@configuration就是把这个类交给Spring管理,@configurationProperties(prefox="captcha")就是根据这个配置文件由Spring来创建这个对象;为啥Session要使用静态的呢因为要使用Session呀,这个类都没有交个Spring管理,我们拿不到它但是静态的话就能拿到了;

来上yml配置文件:

captcha:width: 150height: 50session:key: capkeydata: capdata

 来第一个接口,生成验证码:

@RequestMapping("/Captcha")
@RestController
public class CaptchaController {//为了打印日志public static final Logger logger = LoggerFactory.getLogger(CaptchaController.class);@Autowiredprivate CaptchaProperties captchaProperties;@RequestMapping("/get")public void get(HttpSession session, HttpServletResponse response) throws IOException {//设置验证码生成的时间Long start = System.currentTimeMillis();//设置响应报文的正文类型是图片response.setContentType("image/jpeg");//目的是为了让浏览器禁止缓存,让每次获取到的都是新的验证码response.setHeader("pragma","No-cache");//生成验证码,圆形验证码,从我们注入的对象中拿配置文件,后两个参数是验证码字符数和干扰数CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(captchaProperties.getWidth(),captchaProperties.getHeight(), 4, 20);//获取验证码的数字用来放到Session中,来check时候检验发来的和我们服务器发过去的验证码是否是一样的;String code = captcha.getCode();//设置我们发给客户端的验证码是啥session.setAttribute(captchaProperties.getSession().getKey(),code);//设置发送的时间,来实现验证码有效时间session.setAttribute(captchaProperties.getSession().getData(),new Date());//把验证码输入到浏览器上captcha.write(response.getOutputStream());//设置验证码结束生成的时间,其实也没必要但是我们可以看看我们这个验证码用了多长时间:Long end = System.currentTimeMillis();logger.info("验证码生成时间"+(end-start)+"ms");}
}

我把每一步都详细解释了;
 

 

要把这个img标签下的和$this下面的/路径改成我们后端得到验证码方法的路径;

这样就ok了,可以试试,接下来我们来实现验证码的校验功能:
来Check接口:
 

    @RequestMapping("/check")public boolean check(String captcha,HttpSession session){if(captcha==null) return false;//获取我们之前给用户发的验证码,我们已经存储到Session中了,我们只需要再和用户输入的进行比对就行了String code = (String) session.getAttribute(captchaProperties.getSession().getKey());//用来限制验证码的输入时间Date date = (Date) session.getAttribute(captchaProperties.getSession().getData());if(date!=null && captcha.equalsIgnoreCase(code) && System.currentTimeMillis()-date.getTime()<VALID_TIME){return true;}return false;}

接下来完善前端的ajax,

 $("#checkCaptcha").click(function () {$.ajax({type: "post",url: "Captcha/check",data: {captcha: $("#inputCaptcha").val()},success: function (result) {if(result==true){location.href="success.html"}else {alert("验证码无效")}}})});

 来测试:注意ajax要使用Post

输入正确的

输入错误的

下面等超时再输入


文章转载自:

http://GomjSIwD.skfkx.cn
http://wBzreUxN.skfkx.cn
http://u4z4bB5z.skfkx.cn
http://EZBRYxqw.skfkx.cn
http://cJJmFdWv.skfkx.cn
http://rchY4N17.skfkx.cn
http://pjIoZZdl.skfkx.cn
http://AC1pm1FP.skfkx.cn
http://Si4MDtjR.skfkx.cn
http://CYB7fC1x.skfkx.cn
http://edFLNylQ.skfkx.cn
http://8S8BSyMQ.skfkx.cn
http://umJiXB2N.skfkx.cn
http://pgOsdKZq.skfkx.cn
http://TJ63Spc7.skfkx.cn
http://yre0HiDj.skfkx.cn
http://1XmLOXsA.skfkx.cn
http://47SY6C9v.skfkx.cn
http://n1q7otSb.skfkx.cn
http://HQmjdtZz.skfkx.cn
http://2oEELYWL.skfkx.cn
http://uWsGRzJ3.skfkx.cn
http://0m7lQiJs.skfkx.cn
http://VVGUKg2C.skfkx.cn
http://FTlnL4dM.skfkx.cn
http://RUbSUb5U.skfkx.cn
http://2phAV5Cb.skfkx.cn
http://mHCeHQ4o.skfkx.cn
http://G07P9iKV.skfkx.cn
http://xJcyxYOm.skfkx.cn
http://www.dtcms.com/wzjs/685369.html

相关文章:

  • .net wap网站模板重庆网站seo公司
  • wordpress页头视频seo wordpress
  • 北京网站建设招标海外版tiktok官网入口
  • 网站建设及管理基本要求做多语言网站不会翻译怎么办
  • 山东省住房城乡建设厅网站世界杯比分查询
  • 长春网站设计长春网络推广松江集团网站建设
  • 企业网站开发的背景和意义查网站的建站系统
  • 做ppt会去什么网站找图电商后台管理网站模板
  • 中国建设银行英语网站首页免费的企业网站源码
  • 安徽建网站公司济南网站建设推荐搜点网络NO1
  • 注册网站需要备案吗windows vps offline性x
  • 自己做的美食分享到网站网站主机安全
  • 河南省建设安全监督总站网站五百亿网站搬家公司
  • 企业搭建网站哪家好dede安装好后是模板怎么变成做好的网站
  • 营销渠道有哪些企业网站站内优化
  • 恩施网站建设xiduyun最新手机资讯
  • 佛山网站建设明细青海最好的网站建设公司
  • 怎么用织梦系统建一个网站牛商网上市了吗
  • 深圳市住房和建设局网站变更做网站购买域名
  • 未来分发网下载app昆明做网站seo
  • 优购物官方网站下载企业建设网站的方式
  • 买表的网站达濠网红景点
  • 济南行业网站开发深圳网站设计工资一般多少
  • 新泰网站seo软件开发和网站开发区别
  • 网站建设几个要素网店运营推广网站
  • 酒店品牌设计网站建设网站建设的原则有哪些方面
  • 外链数是网站反向链接码html后台网站模板
  • 网站验证码系统wordpress数据库配置
  • 百度站长平台网页手机全军采购信息招标网
  • 网站建网站建设公司wordpress 中文数据库