生成最简单的验证码图片的Java代码
生活随笔
收集整理的這篇文章主要介紹了
生成最简单的验证码图片的Java代码
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
后端代碼:
package priv.lwx.servlet.sl.web; /*** description** @author liaowenxiong* @date 2022/3/25 09:56*/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.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.Random;@WebServlet("/PlainCheckCodeServlet") public class PlainCheckCodeServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("image/png");// 在內(nèi)存中構(gòu)造一個圖像對象BufferedImage image = new BufferedImage(45, 20, BufferedImage.TYPE_INT_RGB);// 創(chuàng)建隨機數(shù)對象Random r = new Random();// 獲得畫筆,并且轉(zhuǎn)換成2D畫筆Graphics2D,因為Graphics2D可以去鋸齒,Graphics2D是Graphics的子類Graphics2D g = (Graphics2D)image.getGraphics();// 隨機設置畫筆的顏色// g.setColor(new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255)));g.setColor(Color.BLUE);// 填充矩形,其實就是填充背景色g.fillRect(0, 0, 60, 20);// 設置畫筆的顏色g.setColor(new Color(0, 0, 0));// 設置字體、樣式、大小Font font = new Font("宋體", 0, 10);g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // 抗鋸齒g.setFont(font);// 隨機獲取0~99998之間的數(shù)值String number = String.valueOf(r.nextInt(99999));// 把獲取到的數(shù)值繪入圖片對象中g.drawString(number, 5, 15);// 獲得字節(jié)輸出流,因為要輸出的是圖像壓縮之后的字節(jié)數(shù)組,所以,不能用 PrintWriter。OutputStream os = response.getOutputStream();// 獲取圖片壓縮編碼器// JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);// 這是Sun公司私有的API// encoder.encode(image);ImageIO.write(image, "png", os);} }前端代碼:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <html> <head><title>注冊</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="css/style.css"/><script>window.onload = function () {var image = document.getElementById("checkCode");var rb = document.getElementById("rb");image.onclick = function () {image.src = "plain_check_code?" + Math.random();};rb.onclick = function () {image.src = "plain_check_code?" + Math.random();}};</script> </head> <body> <div id="wrap"><div id="top_content"><div id="header"><div id="rightheader"><p>2009/11/20<br/></p></div><div id="topheader"><h1 id="title"><a href="#">main</a></h1></div><div id="navigation"></div></div><div id="content"><p id="whereami"></p><h1>注冊</h1><form action="register.do" method="post"><table cellpadding="0" cellspacing="0" border="0"class="form_table"><tr><td valign="middle" align="right">用戶名:</td><td valign="middle" align="left"><input type="text" class="inputgri" name="accountName"/><%String msg = (String) request.getAttribute("registerErrorMessage");%><span style="color: red;font-style: italic"><%=(msg == null ? "" : msg)%></span></td></tr><tr><td valign="middle" align="right">真實姓名:</td><td valign="middle" align="left"><input type="text" class="inputgri" name="realName"/></td></tr><tr><td valign="middle" align="right">密碼:</td><td valign="middle" align="left"><input type="password" class="inputgri" name="password"/></td></tr><tr><td valign="middle" align="right">性別:</td><td valign="middle" align="left">男<input type="radio" class="inputgri" name="gender" value="m" checked="checked"/>女<input type="radio" class="inputgri" name="gender" value="f"/></td></tr><tr><td valign="middle" align="right">驗證碼:</td><td valign="middle" align="left"><input type="text" class="inputgri" name="checkCode"/><img style="vertical-align: middle;height: 32px" id="checkCode" src="plain_check_code"/><a href="javascript:" id="rb">換一張</a></td></tr></table><p><input type="submit" class="button" value="注冊 »"/></p></form></div></div><div id="footer"><div id="footer_bg">ABC@126.com</div></div> </div> </body> </html>總結(jié)
以上是生活随笔為你收集整理的生成最简单的验证码图片的Java代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用腾达路由器怎么连接两台电脑上网两台藤达
- 下一篇: java环境变量的配置_Java的下载及