package cn.sxt.sscs.servlet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RandomServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 在内存中创建图象
int width = 85, 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));
// 随机产生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);
}
// 取随机产生的认证码(6位数字)
String sRand = "";
for (int i = 0; i < 6; 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);
}
// 图象生效
g.dispose();
try {
ImageIO.write(image, "JPEG", response.getOutputStream());
} catch (Exception e) {
System.out.println("验证码图片产生出现错误:" + e.toString());
}
//保存验证码到Session
request.getSession().setAttribute("randStr", sRand);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
/*
* 给定范围获得随机颜色
*/
private 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);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
学生选课系统jsp+mvc+servlet
共207个文件
gif:130个
html:36个
css:12个
需积分: 0 0 下载量 47 浏览量
2024-02-19
21:19:21
上传
评论 1
收藏 5.48MB ZIP 举报
温馨提示
可做课设,功能齐全,代码齐全,资料齐全 视图层 JSP JSTL/EL 控制层 Servlet 模型层 业务层 JavaBean 数据层 DAO+JDBC 主要功能说明: 管理员角色包含以下功能:管理员登录,学生管理,教师管理,课程管理等功能。 教师角色包含以下功能:登录界面,查看课程,建立课程计划,管理教学课程,成绩查询结课等功能。 学生角色包含以下功能:登录界面,选课,确认选课,查看选课结果,退选界面,查看已修课程,管理个人信息等功能。
资源推荐
资源详情
资源评论
收起资源包目录
学生选课系统jsp+mvc+servlet (207个子文件)
css.css 16KB
style.css 11KB
tinymce.css 9KB
default.css 9KB
head.css 7KB
control.css 5KB
datepicker.css 5KB
datepicker.css 5KB
common1(1).css 4KB
style0.css 1KB
editor.css 605B
WdatePicker.css 158B
welcome.gif 164KB
top03.gif 23KB
register_04(1).gif 22KB
register_08.gif 18KB
tinymce.gif 12KB
ico15.gif 8KB
ico14.gif 8KB
ico16.gif 8KB
register_03.gif 7KB
default.gif 7KB
ico13.gif 7KB
pic05.gif 5KB
bu13.gif 4KB
bu10.gif 4KB
nav03.gif 4KB
nav01.gif 4KB
bu09.gif 4KB
bu07.gif 4KB
bu04.gif 4KB
logo.gif 4KB
bu11.gif 3KB
bu05.gif 3KB
bu06.gif 3KB
bu12.gif 3KB
bu08.gif 3KB
shape01.gif 3KB
bu02.gif 3KB
bu03(1).gif 3KB
bu01.gif 2KB
register_22.gif 2KB
register_11.gif 2KB
ico02.gif 2KB
img.gif 2KB
rr_24.gif 2KB
rr_26.gif 2KB
register_24.gif 2KB
img.gif 2KB
ico24.gif 1KB
register_05.gif 1KB
nav02.gif 1KB
etc_24.gif 1KB
etc_33.gif 1KB
etc_32.gif 1KB
etc_36.gif 1KB
ico07.gif 1KB
datePicker.gif 1KB
etc_31.gif 1KB
etc_30.gif 1KB
etc_25.gif 1KB
etc_26.gif 1012B
etc_34.gif 992B
etc_35.gif 989B
etc_27.gif 978B
line01.gif 935B
register_17.gif 855B
etc_02.gif 687B
etc_12.gif 687B
etc_16.gif 685B
etc_15.gif 683B
etc_03.gif 682B
etc_08.gif 680B
etc_01.gif 671B
etc_09.gif 670B
etc_13.gif 666B
navbutton04.gif 662B
etc_06.gif 660B
etc_07.gif 657B
etc_14.gif 657B
etc_10.gif 657B
etc_11.gif 655B
etc_04.gif 655B
ico01.gif 654B
etc_05.gif 643B
navbutton02.gif 635B
navbutton03.gif 576B
top02.gif 559B
navbutton01.gif 547B
loadon.gif 538B
register_13.gif 520B
dhbutton04.gif 499B
dhbutton01.gif 499B
dhbutton03.gif 499B
dhbutton02.gif 499B
etc_22.gif 473B
etc_18.gif 453B
etc_20.gif 453B
etc_17.gif 445B
etc_23.gif 444B
共 207 条
- 1
- 2
- 3
资源评论
超级小狗
- 粉丝: 1317
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现本份代码能对图像进行gabor滤波处理,结合指纹方向图以及指纹沟壑频率特性,对指纹图像进行增强.rar
- 基于matlab实现RBM神经网络实现了手写数字体识别的GUI程序.rar
- 基于matlab实现蝙蝠算法优化相关向量机建模对数据进行建模和预测.rar
- 基于matlab实现编写的禁忌搜索算法,解决了TSP问题,对初学者有重要的参考价值.rar
- 基于matlab实现SOH关于IMU进行姿态求解的C代码,里面包含了两套代码,分别是重力约束法求解和梯度下降法求解.rar
- 1_简单电子邮件客户端.zip
- 基于matlab实现powell优化搜索算法,适合于多参数优化且目标函数中不包含参数的情况.rar
- 基于matlab实现PID神经网络前向和反向学习算法的matlab的原程序代码.rar
- 基于matlab实现nsga-2的多目标优化算法,有注解.rar
- AIR-AP1815-K9-ME-8-5-182-0.zipFor 1815 1830 1840 1850 2700 3700
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功