java实现网页验证码功能

时间:2021-05-19

本文实例为大家分享了java网页验证码的实现代码,供大家参考,具体内容如下

Servlet:

package cn.bdqn.servlet; import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.awt.*;import java.awt.font.ImageGraphicAttribute;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Random; @WebServlet(name = "Servlet",urlPatterns = "/yanCode")public class Servlet extends HttpServlet { public void doPost(javax.servlet.http.HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request,response); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; Random random = new Random(); int width=500; int height=50; BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); Graphics graphics = image.getGraphics();//相当于画笔 //画背景 graphics.setColor(Color.gray); graphics.fillRect(0,0,width,height); graphics.setColor(Color.black); for (int i = 0; i <4 ; i++) { int index = random.nextInt(s.length()); String c = s.substring(index, index + 1); graphics.drawString(c,width/5*(i+1),15); } ImageIO.write(image,"jpg",response.getOutputStream()); }}

jsp:

<%-- Created by IntelliJ IDEA. User: Administrator Date: 2017/10/10 Time: 13:04 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head> <title>验证码</title> </head> <body> <img src="yanCode" alt="验证码" style="width: 500px;height:50px"> <input type="button" value="看不清,更换验证码" id="btn" onclick="changeCode();"> <script type="text/javascript" src="js/jquery.min.js"> </script> <script type="text/javascript" > function changeCode() { $("img").attr('src', 'yanCode?ts=' + new Date().getTime()); } </script> </body></html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章