生成验证码JSP【复用代码】
2024-08-24 13:05:55
该JSP可以生成验证码。以后用到的时候就方便了。
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
public Color getColor(){
Random random = new Random();
int r = random.nextInt(256);//0-255
int g = random.nextInt(256);
int b = random.nextInt(256);
return new Color(r,g,b);
}
public String getNum(){
String str = "";
Random random = new Random();
for(int i=0;i<4;i++){
str += random.nextInt(10);//0-9
}
return str;
}
%>
<%
response.setHeader("pragma", "mo-cache");
response.setHeader("cache-control", "no-cache");
response.setDateHeader("expires", 0);
BufferedImage image = new BufferedImage(80,30,BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
g.setColor(new Color(200,200,200));
g.fillRect(0,0,80,30);
for (int i = 0; i < 30; i++) {
Random random = new Random();
int x = random.nextInt(80);
int y = random.nextInt(30);
int xl = random.nextInt(x+10);
int yl = random.nextInt(y+10);
g.setColor(getColor());
g.drawLine(x, y, x + xl, y + yl);
}
g.setFont(new Font("serif", Font.BOLD,16));
g.setColor(Color.BLACK);
String checkNum = getNum();//"2525"
StringBuffer sb = new StringBuffer();
for(int i=0;i<checkNum.length();i++){
sb.append(checkNum.charAt(i)+" ");//"2 5 2 5"
}
g.drawString(sb.toString(),15,20);
session.setAttribute("CHECKNUM",checkNum);//2525
ImageIO.write(image,"jpeg",response.getOutputStream());
out.clear();
out = pageContext.pushBody();
%>
最新文章
- TypeError: invalid &#39;in&#39; operand obj
- 第一个hadoop 程序
- 解决webstorm卡顿问题
- test 2017-1-5
- nginx日志轮巡切割
- Pexels Videos – 可以免费商业使用的短视频
- Frame Stacking(拓扑排序)
- 使用html元素的getBoundingClientRect来获取dom元素的时时位置和大小
- Oracle数据库常用命令记录
- 类Scanner
- 获取SQL数据库中的数据库名、所有表名、所有字段名、列描述
- Qt学习2---信号与槽
- BZOJ4543[POI2014]Hotel加强版——长链剖分+树形DP
- js中函数对象创建的总结
- protocol buffer开发指南(官方)
- python 全栈开发,Day47(行级块级标签,高级选择器,属性选择器,伪类选择器,伪元素选择器,css的继承性和层叠性,层叠性权重相同处理,盒模型,padding,border,margin)
- Vue 1.0 和 2.0 执行顺序
- 团队作业4——WBS练习
- java垃圾回收的回收器
- IP分片丢失重传