<%@page import="javax.imageio.ImageIO"%> <%@page import="java.awt.Color"%> <%@page import="java.awt.Graphics"%> <%@page import="java.awt.image.BufferedImage"%> <%@ page language="java" import="java.util.*" contentType="image/JPEG" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> 生成验证码 <%! 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); } private String getRandomChar(){ int rand = (int) Math.round(Math.random()*2); long itmp = 0; char ctmp = '\u0000'; switch(rand){ case 1: itmp = Math.round(Math.random()*25+65); ctmp = (char)itmp; return String.valueOf(ctmp); case 2: itmp = Math.round(Math.random()*25+65); ctmp = (char)itmp; return String.valueOf(ctmp); default: itmp = Math.round(Math.random()*9); return String.valueOf(itmp); } } %> <% response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); int width=70,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(1, 1, width - 1, height - 1); g.setColor(new Color(102, 102, 102)); g.drawRect(0, 0, width - 1, height - 1); g.setColor(getRandColor(160, 200)); /* for(int i=0;i<160;i++){ int x = random.nextInt(width-1); int y = random.nextInt(height-1); int x1 = random.nextInt(6) + 1; int y1 = random.nextInt(12) + 1; g.drawLine(x, y, x+x1, y+y1); } for(int i=0;i<70;i++){ int x = random.nextInt(width-1); int y = random.nextInt(height-1); int x1 = random.nextInt(6) + 1; int y1 = random.nextInt(12) + 1; g.drawLine(x, y, x+x1, y+y1); }*/ String sRand=""; for(int i=0;i<4;i++){ String tmp=getRandomChar(); sRand += tmp; g.setColor(Color.red); g.drawString(tmp, 15*i+10, 15); } session.setAttribute("rand", sRand); g.dispose(); ImageIO.write(image, "JPEG", response.getOutputStream()); response.getOutputStream().flush(); response.getOutputStream().close(); response.flushBuffer(); out.clear(); out = pageContext.pushBody(); %>