<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
Color getRandColor(int fc,int bc){//给定范围获得随机颜色
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
// 在内存中创建图象
int width=60, height=20;
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(new Color());
//g.drawRect(0,0,width-1,height-1);
// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
// 取随机产生的认证码(4位数字)
//String rand = request.getParameter("rand");
//rand = rand.substring(0,rand.indexOf("."));
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 将认证码显示到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}
// 将认证码存入SESSION
if(session.getAttribute("validateCode")!=null){
session.removeAttribute("validateCode");
}
session.setAttribute("validateCode",sRand);
// 图象生效
g.dispose();
// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
%>
分享到:
相关推荐
标题中的“验证码 image.jsp”可能指的是一个用于生成和验证图像验证码的Java Servlet程序。在Web开发中,验证码通常被用来防止自动化的机器人或恶意软件进行非法操作,如批量注册、恶意登录等。它通过显示一个随机...
- **image.jsp**: 生成验证码图片。 - **index.html**: 系统首页,提供登录表单。 - **info_management.jsp**: 个人资料管理,用于修改密码等信息。 - **logout.jsp**: 用户退出登录。 - **main.jsp**: 普通...
在这个项目中,image.jsp可能用于生成随机的验证码图片。通常,服务器端会生成一个唯一的字符串,将其显示在图片上,并存储在服务器的临时变量中。客户端(浏览器)展示图片,用户输入看到的验证码,然后提交时,...
通过`image.jsp`生成验证码图片,并利用`test.jsp`进行前端展示,最终在`check.jsp`完成验证码的有效性验证。这种方法可以有效提高系统安全性,防止自动化攻击。开发者可以根据实际需求调整验证码的复杂度或增加其他...
上述代码中,`image.jsp`是生成验证码图像的后端处理程序,每当用户点击图像,都会触发`chk_image`函数,使得图像的源地址包含一个随机数,从而强制浏览器加载新数据。 ### 方法二:通过点击文本链接刷新 第二种...
最后,`image.jsp`是生成图形验证码的核心部分。它通常包含以下步骤: 1. **生成随机字符串**:使用Java的`Random`类生成一个随机的字符串,包括字母和数字。字符串长度可以根据需求设定,通常为4-6位。 2. **图像...
本文主要介绍了JSP实现登录验证功能的具体方法,包括生成验证码图片的`image.jsp`文件和实现登录界面的`login.jsp`文件。 #### 二、验证码生成机制(`image.jsp`) `image.jsp`用于生成数字验证码图片,通过在...
1. **创建JSP文件**:在本例中,文件名为`image.jsp`,我们将在这个文件中编写验证码生成的逻辑。 2. **导入必要的库**:为了绘制和输出图片,我们需要导入`java.awt`和`javax.imageio`库,以及可能的随机数生成库...
##### 2.1 图像生成模块 `image.jsp` **文件描述**: `image.jsp` 文件负责生成验证码图像,其主要功能包括设置HTTP响应头避免浏览器缓存、在内存中创建图像、绘制背景、添加随机线条干扰、绘制验证码数字,并最终...
根据文档的要求,我们需要创建三个JSP页面:`image.jsp`用于生成验证码图像,`a.jsp`作为展示验证码的表单页面,而`check.jsp`则用于验证用户输入的验证码是否正确。 #### 二、验证码生成原理与实现 (`image.jsp`) ...
`image.jsp`可能包含创建这种验证码的逻辑,它可能使用了`java.awt`和`javax.imageio`包中的类来生成图像,并将随机生成的中文字符或数字写入其中。验证码的生成通常还包括设置字体、颜色、噪声等以增加破解难度。 ...
2,将image.jsp里面的图片换成你的本地图片 <img id="cutimg" src="images/20090117105013734.jpg" /> <input type="hidden" id="fileNameId" name="filename" value="E:/workspace/head-image-upload/target/head...
将上述代码保存为`image.jsp`,放置在支持JSP 1.1的web服务器(如Tomcat)的适当位置,例如Tomcat的`ROOT`目录下。然后在浏览器中访问`http://localhost:8080/image.jsp`,你将看到一个由随机多边形组成的动态图像。...
在jsp开发中,比如用户注册等页面中,用于提供输入验证码的一段代码,在jsp中添加如下语句就可以将其引入进去: <img src="image.jsp"></img>
`login.jsp`可能用于用户登录,`mainTemp.jsp`可能是主页面模板,`image.jsp`可能处理图像相关操作,而`a.jsp`可能是一个通用的JSP页面。 4. **foreground**: 这可能是前端资源的目录,包含用户的视图和交互界面,...
为了验证用户输入的验证码是否正确,我们需要另一个JSP页面,比如`validateimage.jsp`。在这个页面上,我们将获取用户输入的验证码并与session中的验证码进行比较: ```jsp <%@ page import="java.io.*, javax....
这些文件可能包括了JSP页面(如`Image.jsp`和`LOGIN.JSP`)、CSS样式文件(用于美化验证码图像)以及任何其他辅助资源。 总结来说,通过JSP实现验证码功能需要生成随机字符串,绘制并输出图像,同时妥善处理HTTP...
Image.jsp 使用 Java 语言生成一个 JPEG 图像,并将其输出到页面上。生成验证码的过程中,使用了随机数生成器 Random 来生成随机颜色和随机干扰线,以增加验证码的安全性。 验证码的生成包括以下步骤: 1. 设置...