Servlet验证码功能
Servlet验证码功能
创建验证码生成Servlet
package com.pc.verifycode;import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class VerifyServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 使用java图形界面技术绘制一张图片int charNum = 4;int width = 20 * 4;int height = 28;// 1. 创建一张内存图片BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);// 2.获得绘图对象Graphics graphics = bufferedImage.getGraphics();// 3、绘制背景颜色graphics.setColor(Color.YELLOW);graphics.fillRect(0, 0, width, height);// 4、绘制图片边框graphics.setColor(Color.GRAY);graphics.drawRect(0, 0, width - 1, height - 1);// 5、输出验证码内容graphics.setColor(Color.RED);graphics.setFont(new Font("宋体", Font.BOLD, 22));// 随机输出4个字符String s = "ABCDEFGHGKLMNPQRSTUVWXYZ23456789";Random random = new Random();// session中要用到String msg = "";int x = 5;for (int i = 0; i < charNum; i++) {int index = random.nextInt(32);String content = String.valueOf(s.charAt(index));msg += content;graphics.setColor(new Color(random.nextInt(255), random.nextInt(255), random.nextInt(255)));graphics.drawString(content, x, 22);x += 20;}// 6、绘制干扰线graphics.setColor(Color.GRAY);for (int i = 0; i < 5; i++) {int x1 = random.nextInt(width);int x2 = random.nextInt(width);int y1 = random.nextInt(height);int y2 = random.nextInt(height);graphics.drawLine(x1, y1, x2, y2);}// 释放资源graphics.dispose();// 图片输出 ImageIOImageIO.write(bufferedImage, "jpg", response.getOutputStream());}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}
修改web.xml
<servlet><servlet-name>VerifyServlet</servlet-name><servlet-class>com.pc.verifycode.VerifyServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>VerifyServlet</servlet-name><url-pattern>/VerifyServlet</url-pattern>
</servlet-mapping>
创建登录jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html><head><meta charset=utf-8"><title>Login</title></head><body><%-- 演示验证码功能 --%><form action="#" method="post">用户名:<input type="text" name="username" /><br /><br />密码:<input type="password" name="password" /><br /><br />验证码:<input type="text" name="verifyCode" /><img src="${pageContext.servletContext.contextPath }/VerifyServlet" id="verifyImg"><br /><input type="submit" value="登录" /></form></body>
</html>
head标签后加入js实现点击刷新验证码
<!-- 引入jquery库 --><script type="text/javascript" src="${pageContext.servletContext.contextPath }/resource/js/jquery-1.11.0.js"></script><!-- 写一个验证码点击刷新功能 --><script type="text/javascript">$(function() {$("#verifyImg").click(function() {$(this).prop("src", "${pageContext.servletContext.contextPath }/VerifyServlet?t=" + new Date().getTime());});});</script>
PS:GitHub:https://github.com/Switch-vov/servlet-tools
Servlet验证码功能相关推荐
- java生成验证码实例_Java生成验证码功能实例代码
页面上输入验证码是比较常见的一个功能,实现起来也很简单.给大家写一个简单的生成验证码的示例程序,需要的朋友可以借鉴一下. 闲话少续,直接上代码.代码中的注释很详细. package com.SM_te ...
- session实现验证码功能
session实现验证码功能 1. 页面设计login.html <html> <head> <meta http-equiv="Content-Type&q ...
- javaweb实现验证码功能
在javaweb的用户注册与登陆功能时,有时为了防止漏洞或者大量注册,可以使用验证码功能,下面是验证码的一个简单实现 验证码类 public class ValiImg extends HttpSer ...
- java输入验证码代码,JavaWeb 实现验证码功能(demo)
验证码不用多说,在 WEB-APP 中一般应用于:登录.注册.买某票.秒杀等场景.大家都接触过~可以说是千奇百怪,各式各样. DEMO 目标功能 验证码页面输入. 页面更换验证码(异步实现). 后台验 ...
- springboot+vue实现手机验证码功能
springboot+vue实现手机验证码功能 榛子云短信平台用户中心注册登录(有免费的一条消息,剩下的需要买)(阿里云个人得备案) 在springboot中加入依赖,用到了redis,阿里的fast ...
- 【途牛旅游项目】02 - 登录功能实现 - 验证码功能 - ajax实现登录
文章目录 登录功能分析图解 最终实现截图 实现登录功能 1. 创建测试类 2. 创建业务层UserService 3. 创建实体类 - User用户类和Msg错误提示类 4. 创建dao层 5. 创建 ...
- SSM+MyBatis-Plus+EasyExcel+腾讯云tianai滑动验证码接入项目搭建+简单实现增、删、改、查、导入、滑动验证码功能
SSM+MyBatis-Plus+EasyExcel+腾讯云&tianai滑动验证码接入项目搭建+简单实现增.删.改.查.导入.滑动验证码功能 文章末尾附源码 一.什么是SSM框架 SSM框架 ...
- 网页登录时验证码功能的实现
网页登录时验证码功能的实现 在我们日常上网时,经常会遇到要登录的界面,我们会发现他会让你输入账号,密码外,还需要输入随机生成的验证码. 作用: 不少网站为了防止用户利用机器人自动注册.登录.灌水,都采 ...
- JavaWeb Servlet 登录功能 注销功能
JavaWeb Servlet 登录功能 注销功能 有三个逻辑: 处理登陆的逻辑,用户主页的逻辑,退出登录逻辑 登陆的逻辑LoginServlet.java import java.io.IOExce ...
最新文章
- 卷积神经网络基础:(7)经典的网络架构
- 检测一组电动车电瓶好坏要多久?
- 优秀简历要遵循哪些规则
- 解决spring整合mybatis时错误 ‘org.mybatis.spring.mapper.MapperScannerConfigurer#0‘
- linux如何安装infer
- SoftGrid教程系列
- Vue学习笔记之04-computed计算属性
- 获取系统当前时间(精确到毫秒)
- Linux双网卡bonding举例
- 10款神奇的字符图案 amp; 词汇云生成工具
- Spring底层原理问题
- 只争朝夕,不负韶华,告别2019,开启2020年新的奋斗征程!
- 永久禁用software reporter 进程,占用高解决方法。【永久禁用software_reporter_tool.exe程序】
- 双光子荧光成像_为什么双光子成像如此重要?
- [转]WIN7服务一些优化方法
- 耳机驱动调试(插拔检测与按键检测)
- DMIPS CPU主频
- finalize()介绍
- error: dst ref refs/heads/master receives from more than one src
- Android 性能优化之线程优化