<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
Color getRandColor(int cc,int bb)
{
Random random = new Random();
if(cc>255) cc=255;
if(bb>255) bb=255;
int r=cc+random.nextInt(bb-cc);
int g=cc+random.nextInt(bb-cc);
int b=cc+random.nextInt(bb-cc);
return new Color(r,g,b);
} //获取随机颜色
%>
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
int width=80; //定义验证码图片的长度
int height=30; //定义验证码图片的宽度
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
Random random = new Random();
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
//定义字体形式
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int i_x = random.nextInt(width);
int i_y = random.nextInt(height);
int i_xl = random.nextInt(12);
int i_yl = random.nextInt(12);
g.drawLine(i_x,i_y,i_x+i_xl,i_y+i_yl);
}
//用线条画背景
String s_Rand="";
for (int i=0;i<5;i++)
{
String rand=String.valueOf(random.nextInt(10));
s_Rand+=rand;
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
g.drawString(rand,13*i+6,16);
}
//产生4位随机码
session.setAttribute("rand",s_Rand);
//将验证码存入Session中
g.dispose();
ImageIO.write(image, "JPEG", response.getOutputStream());
//输出验证图片
out.clear();
out = pageContext.pushBody();
%>
分享到:
相关推荐
本话题将深入探讨如何使用Java Server Pages (JSP)来生成数字形式的随机验证码,并实现图片化显示及刷新功能。 首先,我们需要理解JSP的基本原理。JSP是一种动态网页技术,它允许开发人员在HTML页面中嵌入Java代码...
在这个验证码实例中,JSP页面将负责生成并显示验证码图像。 在项目中,`checkcode.jsp`是核心的验证码生成页面。它会通过以下步骤生成验证码: 1. **随机生成验证码字符串**:程序会随机选择一定数量的字符(数字...
用户在输入验证码时,JSP页面可以接收并验证用户的输入。 **AJAX(Asynchronous JavaScript and XML)** AJAX允许我们在不刷新整个页面的情况下与服务器进行异步通信,提供更好的用户体验。在动态验证码场景中,当...
2. **显示验证码**:将生成的验证码通过图像或者文本的形式展示在JSP页面上。 3. **存储验证码**:为了验证用户输入的验证码是否正确,我们需要将生成的验证码存储在服务器端,可以是session或者cookie。 4. **用户...
`index.jsp`是登录页面,它会展示登录表单以及与`code.jsp`联动的彩色验证码图像。用户在输入用户名和密码的同时,还需要输入看到的验证码。提交表单后,服务器端的action类(可能是一个Servlet或Struts Action)会...
JSP页面可以将生成的验证码图片发送到客户端,并存储验证码值在服务器端的session中,以便后续验证。 - **使用`<jsp:include>`标签**:将生成验证码的Java代码包含到JSP页面中。 - **`<img>`标签**:生成的验证码...
下面将详细介绍如何在JSP页面中实现验证码功能。 首先,验证码的生成原理通常是随机生成一串字符或数字,然后将其显示在图像上,同时将该字符串保存在服务器端,供用户输入后验证。这个过程包括以下几个步骤: 1. ...
2. **图像创建**:验证码通常以图像的形式显示,以防止被脚本直接解析。JSP可以通过Java的`java.awt`和`javax.imageio`包来创建和处理图像。我们需要一个画布(`BufferedImage`对象),然后在上面绘制随机数字。 3....
上述代码示例展示了一个简单的JSP页面,它使用JavaScript来实现验证码的刷新功能。具体来说,该功能主要通过以下步骤实现: 1. **HTML元素定义**:在表格中定义了一个`<img>`标签用于显示验证码图片,并设置其`id`...
在JSP页面中,可以通过Servlet或者自定义标签库(Tag Library)来实现验证码的生成。以下是一个简单的Servlet示例: ```java import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax....
提交表单后,服务器端的JSP页面或Servlet将验证输入值。 6. **安全性考虑**: - **刷新机制**:每次请求验证码时,都应生成新的验证码,避免重用。 - **时间限制**:验证码应有过期时间,超过该时间未使用的...
7. **将验证码和图片发送到客户端**:在JSP页面中,将生成的验证码字符串存储在session中,同时将图片以流的形式输出到HTTP响应中。客户端接收到图片后显示在网页上,用户输入看到的验证码。 8. **验证用户输入**:...
表单的`action`属性应指向处理验证码验证的JSP页面。 6. **验证逻辑**:在处理表单提交的JSP页面中,首先从`session`获取原始验证码,然后比较用户输入的值。如果匹配,验证成功;否则,提示用户重新输入。 7. **...
1. 用户输入:用户在前端页面输入看到的验证码。 2. 提交验证:当用户提交表单时,将输入的验证码值一同发送到服务器。 3. 比对验证:在服务器端,取出HttpSession中的验证码值,与客户端提交的值进行比较,如果一致...
2. **显示验证码**:在JSP页面中,我们可以使用`<img>`标签显示这个验证码图像,其`src`属性指向一个Servlet,该Servlet负责生成并返回验证码的图像。 3. **用户输入验证**:用户在看到验证码后进行输入,输入的值...
2. **显示验证码**:生成的验证码通过HTTP响应发送到客户端,jsp页面接收到验证码后将其显示在页面上,通常是通过图像的形式。 3. **用户交互**:用户看到验证码后手动输入,然后提交表单。 4. **验证**:当用户...
在JSP中,可以使用Random类生成这些数字,并将它们存储在session中,然后以文本或图片形式显示在页面上。 3. 文字验证码: 文字验证码除了数字外,还包括字母,可能是大小写混合,增加了识别难度。JSP可以结合Java...
- `verify.jsp`:这是一个简单的JSP页面,展示了验证码图片,并包含了一个表单用于用户输入验证码。 - `style.css`:可能包含验证码图片的样式定义,如边框、背景等。 通过阅读和理解这些源码,你可以学习如何在...
本项目着重于JSP页面上的验证码生成,结合后台Java代码,提供了一个完整的解决方案。 首先,验证码的核心在于其随机性和不可预测性。在JSP页面上,通常会有一个专门的图片元素显示验证码。这个图片是由服务器动态...
### JSP登录验证码的源代码解析 #### 一、引言 在Web应用程序的安全性设计中,验证码(CAPTCHA)是一种常见的技术手段,用于...开发者可以根据实际需求调整图片的尺寸、颜色等参数,来优化验证码的表现形式和安全性。