JSP 验证码实现教程:简单易懂的步骤和代码示例
以下是一个简单的JSP代码实现验证码的示例:
- 在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>
- 在表单提交时,验证用户输入的验证码是否正确,代码示例如下:
String code = request.getParameter("code");
String sessionCode = (String) request.getSession().getAttribute("code");
if (code != null && sessionCode != null && code.equals(sessionCode)) {
// 验证码正确,继续处理表单数据
} else {
// 验证码错误,提示用户重新输入
}
注意:在实际应用中,为了防止恶意攻击,需要对验证码进行加密和过期时间的设置。
原文地址: https://www.cveoy.top/t/topic/f1CO 著作权归作者所有。请勿转载和采集!