java制作验证码

时间:2022-05-19 16:26:18

建立一个web工程

aaarticlea/png;base64,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" alt="" />

编写servlet,生成图像

package com.imooc;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random; import javax.imageio.ImageIO;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class ImageSevlet extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException
{
System.err.println("doget into"); BufferedImage bi = new BufferedImage(68, 22, BufferedImage.TYPE_INT_RGB);
//画图
Graphics g = bi.getGraphics();
Color c = new Color(200,150,255);
g.setColor(c);
g.fillRect(0, 0, 68, 22);//画背景
//画验证码图片里面的内容
char[] ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();
Random r = new Random();
//获取随机的4个类
int len = ch.length, index;//len-1是ch下标的取值上限 StringBuffer sb = new StringBuffer();
for(int i = 0; i < 4 ; i++)
{
index = r.nextInt(len);
//获取随机位置,即获取到了字符
//,new 一个新的颜色,不让字符的颜色一致,随机取,
g.setColor(new Color(r.nextInt(88),r.nextInt(188),r.nextInt(255)));//随机颜色
//画在图片上,位置
g.drawString(ch[index]+"", (i*15)+3, 18);
//保存生成的字符
sb.append(ch[index]);
}
//放在session中
request.getSession().setAttribute("verifyCode", sb.toString());
//输出到response中,write(RenderedImage im, String formatName, OutputStream output)
ImageIO.write(bi, "jpg", response.getOutputStream());
} }

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>verifyCode</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>ImageSevlet</display-name>
<servlet-name>ImageSevlet</servlet-name>
<servlet-class>com.imooc.ImageSevlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ImageSevlet</servlet-name>
<url-pattern>/servlet/ImageSevlet</url-pattern>
</servlet-mapping>
</web-app>

jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <%
String nameSpace = request.getContextPath();
%>
<%
String projectPath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ nameSpace + "/";
%>
<%--以后可以在页面直接使用$("basepath") --%>
<%-- <c:set value="<%=projectPath %>" var="basePath"/> --%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title> <script type="text/javascript"> function reloadCode()
{
//解决缓存的问题
var time = new Date().getTime();
//在路径后面加上时间是因为这样每次请求的url不一样,浏览器就不会缓存,如果有缓存的影响那么图片就不会刷新
document.getElementById("verifyCode").src="<%=projectPath %>servlet/ImageSevlet?id="+time;
}
</script>
</head>
<body>
验证码:<input type="text" name = "verifyCode"/>
<img id="verifyCode" src="<%=projectPath %>servlet/ImageSevlet" alt="verifyCode"> <a href="javascript:reloadCode();"> 看不清,刷新</a>
<br> </body>
</html>

效果(把浏览器放大了的效果)

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABHoAAACDCAIAAAB9f+vgAAAAA3NCSVQICAjb4U/gAAAgAElEQVR4Xu2dB4DcxPX/pZW27zXb5w7YYJpNaKZD6L2EEnoJJfwJSWgJgZDQew0QQgnllxACCYGEEiD0Enq3MYRuGxs3XM9Xtqr8v29Ge7d3t3vNXjD4K6/3tKPRzNNndSd99d68MVtbmg0uJEACJEACJEACJEACJEACJEACy5tAaHk3yPZIgARIgARIgARIgARIgARIgASEAOUWzwMSIAESIAESIAESIAESIAESqAoByq2qYGWjJEACJEACJEACJEACJEACJEC5xXOABEiABEiABEiABEiABEiABKpCwP5gyuSqNMxGSYAESIAESIAESIAESIAESGDlJmD6vr9yE+DRkwAJkAAJkAAJkAAJkAAJkEBVCDCYsCpY2SgJkAAJkAAJkAAJkAAJkAAJUG7xHCABEiABEiABEiABEiABEiCBqhCg3KoKVjZKAiRAAiRAAiRAAiRAAiRAApRbPAdIgARIgARIgARIgARIgARIoCoEKLeqgpWNkgAJkAAJkAAJkAAJkAAJkADlFs8BEiABEiABEiABEiABEiABEqgKAcqtqmBloyRAAiRAAiRAAiRAAiRAAiRAucVzgARIgARIgARIgARIgARIgASqQoByqypY2SgJkAAJkAAJkAAJkAAJkAAJUG7xHCABEiABEiABEiABEiABEiCBqhCg3KoKVjZKAiRAAiRAAiRAAiRAAiRAApRbPAdIgARIgARIgARIgARIgARIoCoEKLeqgpWNkgAJkAAJkAAJkAAJkAAJkADlFs8BEiABEiABEiABEiABEiABEqgKAcqtqmBloyRAAiRAAiRAAiRAAiRAAiRAucVzgARIgARIgARIgARIgARIgASqQoByqypY2SgJkAAJkAAJkAAJkAAJkAAJ2ERAAiRAAiRAAiTwrSbw+h+dEvtNta7efb2iS5bpENGE6fumgZenmlOrvumjGP3IZtUhKhlSL6igTejWs6l2wj/TN0N6z2Id3/Q8vEKuYzlYCXmW7VmJrLzEBNPIRgpt8Xw+7GKPkGumspFUJqrtyIW9TNTDJscqYF/UNv1QyLdCePfkXfbv6EhMRSVlv7ZZmS0v9TBa6MkS7ANr29eDLcEPISH1PLUP3sVStSKNty/KHguWYLPZ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ssIQwIjf++67b5999kkkyj8KWWEspSEkQAIkQAJfB4F0Ov3II48cfPDBKssFl5WRgGnqvHQr47HzmAdMwPcbBrwvd1y+BBgEunx5Lmtreu6UZW2F+5MACZAACXyHCODBKLXWd+j75KGQAAmsXATomFzhvu9IJAIf1wpnFg0iARIgARL4JgjgioDrwjfRM/tcUQjQTbGifBO0gwQGRIBya0DYqrlTNBrFtCfogcOjq4mZbZMACZDAt4AA/Fq4IuC68C2wlSaSAAmQAAmUI8BgwnJUvtEyXFYLhQrp8L9Rw9g5CZAACZDA108AVwTKra8fO3skARIggeVFgHJreZFcbu3gsspgwuVGkw2RAAmQwLecAK4IlFvf8u+Q5pMACazUBCi3Vrivv6amZtGiRcwYucJ9MTSIBEiABL52ArgW4IqA68LX3jM7JAESIAESWD4EKLeWD8fl2Mro0aO/+OILRI/gKkvRtRzBsikSIAES+BYR0JcAXAtwRcB14VtkOU0lARIgARIoJcB5t1bE82HKlClfffVVY2Pj0KFDa2trkf83FAohcwbe9cqKaDRtIgESIAESGCgBnRIDWTH0CgIIm5ub58+fv2DBgmHDhq2//voDbZj7kQAJkAAJfMMEKLe+4S+gUveZTAaKC9daXHH11bf9nS6vStBYTgIkQALfUgJ4oKafqbW/41kbnrhBa8Xj8W/pQdFsEiABEiABEKDc4mlAAiRAAiRAAiRAAiRAAiRAAlUhwLFbVcHKRkmABEiABEiABEiABEiABEiAcovnAAmQAAmQAAmQAAmQAAmQAAlUhQDlVlWwslESIAESIAESIAESIAESIAESoNziOUACJEACJEACJEACJEACJEACVSFAuVUVrGyUBEiABEiABEiABEiABEiABCi3eA6QAAmQAAmQAAmQAAmQAAmQQFUIUG5VBSsbJQESIAESIAESIAESIAESIAHKLZ4DJEACJEACJEACJEACJEACJFAVApRbVcHKRkmABEiABEiABEiABEiABEiAcovnAAmQAAmQAAmQAAmQAAmQAAlUhQDlVlWwslESIAESIAESIAESIAESIAESoNziOUACJEACJEACJEACJEACJEACVSFAuVUVrGyUBEiABEiABEiABEiABEiABCi3eA6QAAmQAAmQAAmQAAmQAAmQQFUIUG5VBSsbJQESIAESIAESIAESIAESIAHKLZ4DJEACJEACJEACJEACJEACJFAVApRbVcHKRkmABEiABEiABEiABEiABEiAcovnAAmQAAmQAAmQAAmQAAmQAAlUhQDlVlWwslESIAESIAESIAESIAESIAESoNziOUACJEACJEACJEACJEACJEACVSFAuVUVrGyUBEiABEiABEiABEiABEiABCi3eA6QAAmQAAmQAAmQAAmQAAmQQFUIUG5VBSsbJQESIAESIAESIAESIAESIAHKLZ4DJEACJEACJEACJEACJEACJFAVApRbVcHKRkmABEiABEiABEiABEiABEiAcovnAAmQAAmQAAmQAAmQAAmQAAlUhQDlVlWwslESIAESIAESIAESIAESIAESoNziOUACJEACJEACJEACJEACJEACVSFAuVUVrGyUBEiABEiABEiABEiABEiABCi3eA6QAAmQAAmQAAmQAAmQAAmQQFUIUG5VBSsbJQESIAESIAESIAESIAESIAHKLZ4DJEACJEACJEACJEACJEACJFAVApRbVcHKRkmABEiABEiABEiABEiABEiAcovnAAmQAAmQAAmQAAmQAAmQAAlUhQDlVlWwslESIAESIAESIAESIAESIAESoNziOUACJEACJEACJEACJEACJEACVSFAuVUVrGyUBEiABEiABEiABEiABEiABCi3eA6QAAmQAAmQAAmQAAmQAAmQQFUIUG5VBSsbJQESIAESIAESIAESIAESIAHKLZ4DJEACJEACJEACJEACJEACJFAVApRbVcHKRkmABEiABEiABEiABEiABEiAcovnAAmQAAmQAAmQAAmQAAmQAAlUhQDlVlWwslESIAESIAESIAESIAESIAESoNziOUACJEACJEACJEACJEACJEACVSHw/wHF6p13ZVcIngAAAABJRU5ErkJggg==" alt="" />

后台验证

package com.imooc;

import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet
{ @Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
String verifyCode = (String) req.getSession().getAttribute("verifyCode");
String code = req.getParameter("verifyCode");
System.out.println(verifyCode);
System.out.println(code);
System.out.println(verifyCode.equalsIgnoreCase(code));
//设置页面类型,解决中文乱码的问题
resp.setContentType("text/html;charset=gbk");
PrintWriter out = resp.getWriter();
if(verifyCode.equalsIgnoreCase(code))
{
out.print("success");
}
else
{
out.print("false");
}
}
}

在web.xml中加入servlet

<servlet>
<description></description>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.imooc.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/servlet/LoginServlet</url-pattern>
</servlet-mapping>

修改上面的jsp,实际就是加入了form

<form action="<%=projectPath %>servlet/LoginServlet" method="get">
验证码:<input type="text" name = "verifyCode"/>
<img id="verifyCode" src="<%=projectPath %>servlet/ImageSevlet" alt="verifyCode"> <a href="javascript:reloadCode();"> 看不清,刷新</a>
<br>
<input type="submit" value="submit">
</form>