验证码的原理、作用及实现「建议收藏」

验证码的原理、作用及实现「建议收藏」验证码能有效阻止恶意登录与注册,这里主要是验证码的相关原理及操作实现。所用知识为javaweb的jspservletxml及java基础知识。

大家好,又见面了,我是你们的朋友全栈君。

验证码原理分析及实现

一、前言

    最近学习实现了验证码,首先附图效果如下:(

    简单说明:

        分别提交正确、错误的验证码及对应效果 

        本文是图文结合说明)

    验证码的原理、作用及实现「建议收藏」      

    验证码的原理、作用及实现「建议收藏」

    验证码的原理、作用及实现「建议收藏」    

    验证码的原理、作用及实现「建议收藏」

二、验证码的作用

    验证码是目前大多网站所支持并使用于注册登录的。就在于其作用能有效防止恶意登录注册,验证码每次都不同,

这就可以排除,用其他病毒或者软件自动申请用户及自动登陆.有效防止这种问题。


三、原理及知识点分析

    1.原理

    验证码于服务器端生成,发送给客户端,并以图像格式显示。客户端提交所显示的验证码,客户端接收并进行比较,若比对失败则不能实现登录或注册,反之成功后跳转相应界面。


    2.主要知识

    服务器端的相关实现,前端运用 HTML 5,CSS 3 ,(可空白留给美工实现,须有  HTML  基础知识)。

    主要是三部分:

                           (提交界面, 成功及失败的)  jsp  

                           (后台对应提交  jsp  验证提交内容的) servlet  (生成验证码的) servlet

                           XML  文档

四、验证码实现

    1.所用软件为  Myeclipse  

    新建项目,默认生成  index.jsp  新建成功及失败  jsp(文件名自定义,但后台使用其路径时要对应即可)

    注意:将  charset ,pageEncoding 设置为  utf-8   才能支持中文,否则乱码,此处采用 post 方法处理 Form 表单提交数据

验证码的原理、作用及实现「建议收藏」

    2. jsp 代码写界面

    提交界面jsp 代码及成功 jsp失败 jsp

    三个界面的代码分别如下:

(1).提交页面主要代码:

    验证码的原理、作用及实现「建议收藏」

(2).成功页面主要代码,验证码输入成功跳转的界面,提示登录成功或验证码输入正确

    验证码的原理、作用及实现「建议收藏」 

(3).失败页面主要代码

     验证码的原理、作用及实现「建议收藏」

    (  其中form 表单中  action=”index”  的 index 不是当前  index.jsp 文件,是对应新建的检测提交数据正误的 servlet  名字可自定义,下面截图所示:

      此处是我的失误,不用这个名字,就不必多解释这一点,希望不会给各位带来不必要的麻烦

       验证码的原理、作用及实现「建议收藏」

     )

    3.  servlet 文件处理数据

    新建  servlet  对应  img 的 src 路径来源属性值,此处命名为  ImageServlet  (可自定义但要相互对应)

实现验证码的产生与显示

代码如下:

   验证码的原理、作用及实现「建议收藏」

    验证码的原理、作用及实现「建议收藏」

新建  action 对应的路径属性值  servlet 命名为  index  实现验证及相关处理

代码如下:

    验证码的原理、作用及实现「建议收藏」

    验证码的原理、作用及实现「建议收藏」

   5.新建对应的  XML 文档,代码如下

    验证码的原理、作用及实现「建议收藏」

    所实现效果即本文开头所示。

    不足之处请见谅及指教,谢谢览阅。

    源码链接:https://gitee.com/niaonao/IdentifyCodeProject


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159125.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python实现矩阵转置的几种方法

    python实现矩阵转置的几种方法文章目录(1)方法一、使用numpy转置(2)方法二、使用zip()函数(3)方法三、使用python列表表达式【不占用额外空间,“原地修改”】(4)方法四、新建列表B,使用双重循环添加元素(1)方法一、使用numpy转置importnumpyasnpA=np.mat([[1,2,3],[4,5,6],[7,8,9]])print(A.T)print(A.swapaxes(0,1))#均输出#[[147]#[258]#[369]]importnum

    2022年6月2日
    48
  • python算法(1)抓交通肇事犯「建议收藏」

    python算法(1)抓交通肇事犯「建议收藏」抓交通肇事犯1.问题描述一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下了车号的一些特征。甲说:牌照的前两位数字是相同的:乙说:牌照的后两位数字是相同的,但与前两位

    2022年7月31日
    2
  • UART 和 USART 有区别

    UART 和 USART 有区别UART:universalasynchronousreceiverandtransmitter通用异步收发器          [BusSignal]  TX ,RX USART:universalsynchronousasynchronousreceiverandtransmitter通用同步异步收发器          [BusSignal]  T

    2022年5月19日
    41
  • c语言List头文件和应用

    c语言List头文件和应用util_list.h#ifndef__UTIL_LIST__#define__UTIL_LIST__/*双链节点*/typedefstructlist_node{ list_node*prev; list_node*next;}LIST_NODE;/*单链节点*/typedefstructslist_node{ slist_node*ne

    2022年7月12日
    46
  • java标识符命名规范

    java标识符命名规范标识符identifier命名规范作用常量、变量、方法、类和包的名称等1、标识符不能以数字开头2、必须以下划线、字母、$开头3、java中包名、类名是不区分大小写的,也就是说包名:com.wang和com.Wang是相同的包名(即只要字母相同,不区分大小写,都是相同的包名);Aa和aA是相同的类名。这种情况小编译都会报错!!!!###但在使用命令窗口执行java类是,类名是区分大小写的:例如类名是HelloWorld的类执行时的命令是javaHelloWorld不能是jav

    2022年7月8日
    31
  • 华为私有云的搭建方案_如何搭建私有云

    华为私有云的搭建方案_如何搭建私有云最近有个Team共享文档的需求。包括大文件,有个access文件超过500m。开始用百度网盘,发现只能分享,不能共享。试了几个其它网盘,广告超级多,但是都没有共享这个功能。基于此,找了几个私有云程序。最后选择了可道云。完美解决云共享。分享一下自己采坑经验:1.NextCloud支持Windows,Mac,Linux,iOS,Android平台,是OwnCloud的衍生版本,很不错的产…

    2022年6月16日
    61

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号