Form表单实现验证码功能

JSP处理页面:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"
    import="java.awt.*,java.util.*,javax.imageio.*,java.awt.image.*"
%>

<%
   response.setHeader("Cache-Control", "no-cache");
   //在内存中创建图像,设置图像的宽和高
   int width=60,height=20;
   //实例化java.awt.image.BufferedImage,作用是访问图像数据缓冲区
   BufferedImage image= new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);   //第三个参数:使用的颜色模式为RGB模式
   //获得画笔
   Graphics g= image.getGraphics();
   //设置背景颜色 RGB
   g.setColor(new Color(200,200,200));
   g.fillRect(0, 0, width, height);
   //取随机产生的验证码(4位数字)
   Random rnd= new Random();
   int randNum=rnd.nextInt(8999)+1000;  //返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
   String ranStr=String.valueOf(randNum);
   //将验证码存到session中
   session.setAttribute("randomString", ranStr);
   //将验证码显示到图像中
   g.setColor(Color.red);
   g.setFont(new Font("",Font.PLAIN,20));  //名称   样式    磅值大小
   g.drawString(ranStr, 10, 17);
   //随机产生100个干扰点,使图像中的验证码不易被其他程序检测到
   for(int i=0;i<100;i++){
       int x=rnd.nextInt(width);
       int y=rnd.nextInt(height);
       g.drawOval(x, y, 1, 1);
   }
   //输出图像到页面
   ImageIO.write(image, "JPEG", response.getOutputStream());
   out.clear();
   out=pageContext.pushBody();
%>

JSP表单页面:

<form action="form" method="post">
   用户名:<input type="text" name="username">   <br>
   密码:<input type="password" name="password"> <br>
      <input type="text" name="code" size="20">  <img name="img" src="yanzhengma.jsp" id="img" onclick="yanzheng()">
      <a href="javascript:vord(0)" onclick="yanzheng()">看不清</a><br>
      <input type="submit" value="提交">
</form>
<script type="text/javascript">
       function yanzheng(){
           img.src=img.src+‘?‘+Math.random();
       }</script>

Servlet处理页面:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("utf-8");
        String yanzheng=request.getParameter("code");
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        if(request.getSession(false).getAttribute("numberStr")!=null)
        {
            String numberStr=(String)request.getSession(false).getAttribute("numberStr");
            if(yanzheng.equals(numberStr))
            {
                if(username.equals("admin")&&password.equals("1234"))
                {
                    response.getWriter().println("恭喜登录成功");
                }else
                {
                    response.getWriter().println("账号或者密码错误登录失败");
                }
            }else
            {
                response.getWriter().println("验证码错误");
            }
        }
    }
时间: 2024-10-11 06:46:58

Form表单实现验证码功能的相关文章

jQuery 实现最简单的form表单提交 Loding 功能

<html> <head><title></title></head> <body> <form name="example" onsubmit="return checkForm()" action="${ctx }threeLesson/addThreeLesson" method="post"> <table id="lo

Form 表单提交功能,jQuery实现

1 <form name="MYFORM" id="MYFORM"> 2 <input name="name" size="30" type="text" id="name" class="span12" placeholder="Name" /> 3 <input name="email" siz

MyReport有填报功能了!!!MyReport.Form表单引擎

MyReport.Form表单引擎,主要提供表单模板的设计以及表单模板的预览填报等功能集合. 支持文本框.选择框.数字框.日期框.图片框.组合框.弹出框等常用控件. 支持表格行的添加,删除,移动等常见操作,输入焦点自动导航. 支持表达式,轻松实现表格统计. 支持常见样式设置,支持条件样式.   在线演示 MyReport.Form表单引擎在线演示 相关资料 MyReport专栏 联系作者 QQ:695541918 版权声明:本文为博主原创文章,未经博主允许不得转载.

form表单的密码是否一致校验功能

这是form类表单,自定义的form表单,需要重写钩子函数 """ forms类表单 """ # 校验密码是否一致 from django.core.exceptions import ValidationError from django import forms class RegForm(forms.Form): username = forms.CharField( max_length=16, label='用户名', label_su

python_Django 实现登入功能form表单的参数接收处理

1.创建Django工程. 参考https://www.cnblogs.com/CK85/p/10159159.html中步骤. 2.在urls.py文件中添加url分发路径 """Django_test URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/2.1/top

django之form表单验证

django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf-8 -*- import re from django import forms from django.core.exceptions import ValidationError def mobile_validate(value): mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]

Python之路【第十三篇续】jQuery案例-Form表单&amp;插件及扩展

jQuery案例-Form表单 学完这个form表单的案例,如果有人说这个表单(功能)还不够NB(此文不包含样式,样式是CSS比较简单可以根据需求自己添加),那么找武Sir他帮你搞定. 一步一步来 注意事项(目录结构): 在写前端html代码的时候要注意(任何代码都一样),一定要规划好目录结构方便其他的人来看你的代码! 如果还有其他的html页面可以在加一个html存储的文件夹. 1.首先看下HTML主体 <!DOCTYPE html> <html lang="en"

javascprit form表单提交前验证以及ajax返回json

1.今天要做一个手机验证码验证的功能.需求是前端页面点击发送 短信验证码,后台接收后通过ajax返回到前端,之后前端在提交时候进行验证.思路很简单,不过做的过程还是学到不少的东西. 1.ajax请求后返回 returning 405 Method Not Allowed 原因是我后台返回的时候没有加上: @ResponseBody注解.加上后返回的数据是json字符串,但是js只能操作json对象.需要把json字符串转为json对象.一般的有三种方式1.JSON.parse();如 var j

Python之路【第十三篇】jQuery案例-Form表单&amp;插件及扩展

学完这个form表单的案例,如果有人说这个表单(功能)还不够NB(此文不包含样式,样式是CSS比较简单可以根据需求自己添加),那么找武Sir他帮你搞定. 一步一步来 注意事项(目录结构): 在写前端html代码的时候要注意(任何代码都一样),一定要规划好目录结构方便其他的人来看你的代码! 如果还有其他的html页面可以在加一个html存储的文件夹. 1.首先看下HTML主体 <!DOCTYPE html> <html lang="en"> <head>