该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();
%>

最新文章

  1. TypeError: invalid &#39;in&#39; operand obj
  2. 第一个hadoop 程序
  3. 解决webstorm卡顿问题
  4. test 2017-1-5
  5. nginx日志轮巡切割
  6. Pexels Videos – 可以免费商业使用的短视频
  7. Frame Stacking(拓扑排序)
  8. 使用html元素的getBoundingClientRect来获取dom元素的时时位置和大小
  9. Oracle数据库常用命令记录
  10. 类Scanner
  11. 获取SQL数据库中的数据库名、所有表名、所有字段名、列描述
  12. Qt学习2---信号与槽
  13. BZOJ4543[POI2014]Hotel加强版——长链剖分+树形DP
  14. js中函数对象创建的总结
  15. protocol buffer开发指南(官方)
  16. python 全栈开发,Day47(行级块级标签,高级选择器,属性选择器,伪类选择器,伪元素选择器,css的继承性和层叠性,层叠性权重相同处理,盒模型,padding,border,margin)
  17. Vue 1.0 和 2.0 执行顺序
  18. 团队作业4——WBS练习
  19. java垃圾回收的回收器
  20. IP分片丢失重传

热门文章

  1. centos开放端口8080
  2. 最新spring官网(spring.io)下载方法
  3. Visual Studio Code 配置C++环境
  4. Struts2文件下载中文名乱码
  5. 从yum提示空间不足到根分区扩容
  6. 优雅的H5下拉刷新【minirefresh】
  7. 用openssl库RSA加密解密
  8. python 三级联动
  9. Java内存模型_顺序一致性
  10. Java后台开发必备软件(windows环境下)