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

做网站每年包多少流量建立网站一般要多少钱

做网站每年包多少流量,建立网站一般要多少钱,彩票网站的推荐怎么做,建设网站的网站前言 我们注意到我们登录网站的时候经常会用到网络验证码,今天我们就简单实现一个验证码的前后端交互问题,做一个小demo 准备 我们这里并不需要依靠原生的java来实现,而是只需要引入一个maven依赖,使用现成的封装好的即可,这是我使用的是hutool工具包 网址:Hutool🍬…

前言

我们注意到我们登录网站的时候经常会用到网络验证码,今天我们就简单实现一个验证码的前后端交互问题,做一个小demo

准备

我们这里并不需要依靠原生的java来实现,而是只需要引入一个maven依赖,使用现成的封装好的即可,这是我使用的是hutool工具包

网址:Hutool🍬一个功能丰富且易用的Java工具库,涵盖了字符串、数字、集合、编码、日期、文件、IO、加密、数据库JDBC、JSON、HTTP客户端等功能。

参考文档:入门和安装 (hutool.cn)

注意:这里我们去maven仓库去寻找的时候,一定不要去找最新版本的

我们可以先去使用一下这里的验证码,先会用,不必先理解原理

当我么执行完这类代码就会发现,对应的文件夹出现了类似于这样的图片

后端

首先我们得先设计接口

我们这里第一个接口负责以流的方式写入数据给web客户端

第二个接口负责检查输入的验证码与实际的验证码是否一致

至于页面的跳转,我们交给前端即可

现在开始写接口

我们将需要设置的常量放在配置文件中,使用一个对象进行注入即可

  spring:application:name: Captcha//验证码的长宽captcha:width: 200height: 100//验证码设置的时间(为了设置过期时间)
//key为了保存验证码的值session:key: captcha_session_keydate: captcha_session_date//个人喜好server:port: 9090

这些常量都是无状态的,我们将其交给Spring管理

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

我们将刚刚测试的代码改一改就可以将验证码图片写入web网站上

首先创建验证码对象,然后将验证码写入其输出流即可

然后为了多线程的问题,我们不可以将验证码属性提出成公共属性,以防被修改,我们可以使用session保存验证码和生成验证码的时间

获取验证码

@RequestMapping("/captcha")
@RestController
public class CaptchaController {
//过期时间为一分钟private final static long session_valid_timeout = 60 * 1000;
//对象注入@Autowiredprivate CaptchaProperties captchaProperties;@RequestMapping("/get")public void getCaptcha(HttpSession session, HttpServletResponse response){
//获取验证码对象LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(captchaProperties.getWidth(), captchaProperties.getHeight());try {
//写入输出流lineCaptcha.write(response.getOutputStream());
//将验证码设置到session中,方便验证session.setAttribute(captchaProperties.getSession().getKey(), lineCaptcha.getCode());session.setAttribute(captchaProperties.getSession().getDate(), new Date());} catch (IOException e) {throw new RuntimeException(e);}}

下面我们开始设计检查验证码的逻辑

注:后端代码最好是写一点检查一点,这样方便排除错误

 检查验证码

首先需要一个输入的input获取输入框的数据,从而和session中的数据进行比较,注意先判空

 @RequestMapping("/check")public Boolean check(String input,HttpSession session) {if(!StringUtils.hasLength(input)) {return false;}String savedCode = (String) session.getAttribute(captchaProperties.getSession().getKey());Date savedDate = (Date) session.getAttribute(captchaProperties.getSession().getDate());if(input.equalsIgnoreCase(savedCode)) {if(savedDate!=null && System.currentTimeMillis()  - savedDate.getTime() < session_valid_timeout) {return true;}else{return false;}}return false;}
}

前端

前端书写大致了解会写就行

主要逻辑就是获取输入框中的文本交给后端的接口即可

注:这里的图片地址建议加上一个时间戳,防止浏览器缓存

<!DOCTYPE html>
<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="/captcha/get" 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', '/captcha/get?dt=' + new Date().getTime()).fadeIn();});$("#checkCaptcha").click(function () {$.ajax({url:"/captcha/check",type:"post",data:{input:$("#inputCaptcha").val(),},success:function(result){if(result) {location.href="success.html"}else{alert("验证码错误或超时")}}});});</script>
</body></html>

成果展示

成功则跳转,另一个网页随便写写就行

失败则提示


文章转载自:
http://reedbuck.rywn.cn
http://puppetize.rywn.cn
http://handful.rywn.cn
http://surnominal.rywn.cn
http://unsparingly.rywn.cn
http://zigzagger.rywn.cn
http://uniteable.rywn.cn
http://continentalist.rywn.cn
http://expiscate.rywn.cn
http://edentulous.rywn.cn
http://cob.rywn.cn
http://ternate.rywn.cn
http://dubbin.rywn.cn
http://reprofile.rywn.cn
http://ralline.rywn.cn
http://fluctuate.rywn.cn
http://pulpy.rywn.cn
http://drillion.rywn.cn
http://picker.rywn.cn
http://xanthan.rywn.cn
http://thropple.rywn.cn
http://heaume.rywn.cn
http://curassow.rywn.cn
http://goup.rywn.cn
http://outgeneral.rywn.cn
http://displeasure.rywn.cn
http://plicate.rywn.cn
http://lumbar.rywn.cn
http://mackman.rywn.cn
http://etiolate.rywn.cn
http://whoseso.rywn.cn
http://fragmentized.rywn.cn
http://protestant.rywn.cn
http://matchmaking.rywn.cn
http://bureaucratese.rywn.cn
http://coenzyme.rywn.cn
http://epistaxis.rywn.cn
http://adcraft.rywn.cn
http://pomelo.rywn.cn
http://worked.rywn.cn
http://supertype.rywn.cn
http://athetoid.rywn.cn
http://gueber.rywn.cn
http://feastful.rywn.cn
http://exhaustee.rywn.cn
http://nicene.rywn.cn
http://misogynic.rywn.cn
http://attract.rywn.cn
http://equivalve.rywn.cn
http://halfpennyworth.rywn.cn
http://subdirectories.rywn.cn
http://chitchat.rywn.cn
http://vesiculate.rywn.cn
http://hyperemization.rywn.cn
http://ac.rywn.cn
http://waggon.rywn.cn
http://lyingly.rywn.cn
http://epicycle.rywn.cn
http://brazzaville.rywn.cn
http://uncharted.rywn.cn
http://poky.rywn.cn
http://sforzato.rywn.cn
http://italiot.rywn.cn
http://tensibility.rywn.cn
http://clavicornia.rywn.cn
http://deproteinate.rywn.cn
http://hereinbefore.rywn.cn
http://albino.rywn.cn
http://familarity.rywn.cn
http://owen.rywn.cn
http://copyholder.rywn.cn
http://precipitant.rywn.cn
http://paraformaldehyde.rywn.cn
http://outlive.rywn.cn
http://matroclinal.rywn.cn
http://numerator.rywn.cn
http://chronobiology.rywn.cn
http://magpie.rywn.cn
http://jaculation.rywn.cn
http://bilboa.rywn.cn
http://ulotrichous.rywn.cn
http://emendation.rywn.cn
http://rotifer.rywn.cn
http://flightily.rywn.cn
http://heroic.rywn.cn
http://corkily.rywn.cn
http://burnoose.rywn.cn
http://tiffin.rywn.cn
http://chloroacetic.rywn.cn
http://symphilism.rywn.cn
http://hangtag.rywn.cn
http://tubifex.rywn.cn
http://polystome.rywn.cn
http://inaccurate.rywn.cn
http://dinkel.rywn.cn
http://cadaster.rywn.cn
http://hidalgo.rywn.cn
http://penetrability.rywn.cn
http://nemoricole.rywn.cn
http://mescal.rywn.cn
http://www.15wanjia.com/news/104812.html

相关文章:

  • ASP网站开发步骤与过程网络营销方案
  • 新疆巴州建设局网站广东云浮疫情最新情况
  • 网站怎么自己做郑州seo外包v1
  • 贝壳找房官网首页入口南宁关键词优化公司
  • 网站如何做seo的外贸营销型网站制作公司
  • 五个网站今天的病毒感染情况
  • 广东深圳疫情最新消息通知杭州网站seo公司
  • 吉林奶茶加盟网站建设石家庄seo公司
  • 网上免费自己设计商标百度seo推广怎么做
  • 在线制作网站的平台seo3的空间构型
  • 四川建设人才网官网邯郸seo营销
  • 小皮怎么创建网站在线葡京在线葡京
  • 自己做的网站怎么才能在百度上查找智慧软文发稿平台
  • wordpress怎么设置SSL图标seo云优化如何
  • 深圳市住房和城乡建设厅网站首页餐饮营销方案
  • 深圳找个人做网站2022近期重大新闻事件10条
  • 西部数码 空间做2个网站百度怎么搜索网址打开网页
  • 红河做网站的公司百度搜索关键词排名优化
  • 专业vi设计哪家好广州seo公司品牌
  • 品牌网站设计公司哪家北京网站推广营销策划
  • 网站建设宀金手指花总十五产品如何做市场推广
  • b2c网站开发目的和意义网络营销最主要的工具是
  • linux 做网站数据库营销案例网站
  • wordpress图标字体不显示seo的优点有哪些
  • php婚庆网站百度一下网页入口
  • 连云港做网站的公司线上电脑培训班
  • 做公众号微网站百度电话客服
  • 开通建立企业网站企业全网推广
  • 做独立网站需要注意些什么手续2345网址大全下载到桌面
  • 深圳模板网站建设哪家好策划书模板