servlet生成验证码和点击刷新验证码

- 日理万妓 2022-03-21 06:46 555阅读 0赞

javaweb项目,有两个文件,一个java文件,用来生成验证码并输出到servlet输出流中。一个html文件,用来写组件和点击事件,刷新验证码。

CodeServlet.java文件

  1. package net.test.servlet;
  2. import javax.imageio.ImageIO;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.annotation.WebServlet;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import java.awt.*;
  9. import java.awt.image.BufferedImage;
  10. import java.io.IOException;
  11. import java.util.Random;
  12. @WebServlet(name = "CodeServlet",urlPatterns = "/code")
  13. public class CodeServlet extends HttpServlet {
  14. @Override
  15. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  16. }
  17. @Override
  18. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  19. int width=100;
  20. int height=30;
  21. String str="qwertyuiopasdfghjklzxcbnm123456789";
  22. Random random = new Random();
  23. BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
  24. Graphics graphics = image.getGraphics();
  25. graphics.drawRect(0,0,100,30);
  26. for (int i = 0; i < 4; i++) {
  27. int number=random.nextInt(str.length());
  28. String a=str.substring(number,number+1);
  29. graphics.drawString(a,20*(i+1),15);
  30. }
  31. ImageIO.write(image,"jpg",resp.getOutputStream());
  32. }
  33. }

login.html文件

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>验证码</title>
  6. </head>
  7. <body>
  8. <image id="verifycode" src="code" onclick="this.src=this.src+'?'+Math.random()" "btn.isDisable=false"></image>
  9. <button id="btn" onclick="document.getElementById('verifycode').click()">刷新验证码</button>
  10. </body>
  11. </html>

运行结果:
在这里插入图片描述
点击图片或者按钮,都能刷新验证码
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,555人围观)

还没有评论,来说两句吧...

相关阅读