以下是一个简单的JSP代码实现验证码的示例:

  1. 在JSP页面中添加以下代码片段,用于生成验证码图片和输入框:
<%@ page import="java.util.*" %>
<%@ page import="java.awt.*" %>
<%@ page import="java.awt.image.*" %>
<%@ page import="javax.imageio.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<% 
    // 生成随机验证码
    String code = "";
    Random random = new Random();
    for (int i = 0; i < 4; i++) {
        code += random.nextInt(10);
    }
    // 将验证码存储到session中
    session.setAttribute('code', code);
    // 创建验证码图片
    int width = 80;
    int height = 30;
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    Graphics g = image.getGraphics();
    g.setColor(Color.WHITE);
    g.fillRect(0, 0, width, height);
    g.setColor(Color.BLACK);
    g.drawRect(0, 0, width - 1, height - 1);
    g.setFont(new Font("Arial", Font.BOLD, 20));
    for (int i = 0; i < code.length(); i++) {
        g.drawString(code.charAt(i) + "", i * 20 + 10, 20);
    }
    // 输出验证码图片
    response.setContentType("image/jpeg");
    OutputStream out = response.getOutputStream();
    ImageIO.write(image, "jpeg", out);
    out.flush();
    out.close();
%>
<div>
    <label for="code">验证码:</label>
    <input type="text" name="code" id="code" />
    <img src="<%=request.getContextPath()%>/captcha.jsp" alt="验证码" />
</div>
  1. 在表单提交时,验证用户输入的验证码是否正确,代码示例如下:
String code = request.getParameter("code");
String sessionCode = (String) request.getSession().getAttribute("code");
if (code != null && sessionCode != null && code.equals(sessionCode)) {
    // 验证码正确,继续处理表单数据
} else {
    // 验证码错误,提示用户重新输入
}

注意:在实际应用中,为了防止恶意攻击,需要对验证码进行加密和过期时间的设置。

JSP 验证码实现教程:简单易懂的步骤和代码示例

原文地址: https://www.cveoy.top/t/topic/f1CO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录