new223.jsp
<%@page import="javax.imageio.ImageIO"%>
<%@page import="java.awt.Font"%>
<%@page import="java.awt.Graphics"%>
<%@page import="java.awt.image.BufferedImage"%>
<%@page import="java.util.Random"%>
<%@page import="java.awt.Color"%>
<%@page import="java.awt.*"%>
<%@page import="java.awt.image.*"%>
<%@page import="java.util.*"%>
<%@page import="javax.imageio.*"%>
<%@page import="java.io.OutputStream"%>
<%@ page language="java" contentType="image/jpeg" %>
<%!
Color getRandColor(int num1,int num2)
{
Random rand = new Random();
if(num1 > 255)
{
num1 = 255;
}
if(num2 > 255)
{
num2 = 255;
}
int red = num1 + rand.nextInt(num2 - num1);
int green = num1 + rand.nextInt(num2 - num1);
int blue = num1 + rand.nextInt(num2 - num1);
return new Color(red,green,blue);
}
%>
<%
try
{
response.reset();
response.setContentType("image/jpeg");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
int width = 100;
int height = 30;
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
OutputStream os=response.getOutputStream();
Random rand2 = new Random();
g.setColor(getRandColor(200, 250));
g.fillRect(0, 0, width, height);
g.setFont(new Font("Times New Roman",Font.PLAIN,20));
g.setColor(getRandColor(160, 200));
for(int i=0;i<155;i++)
{
int x1 = rand2.nextInt(width);
int y1 = rand2.nextInt(height);
int x2 = rand2.nextInt(10);
int y2 = rand2.nextInt(10);
g.drawLine(x1, y1, x1+x2, y1+y2);
}
char[] c = new char[62];
for(int i=97,j=0;i<123;i++,j++)
{
c[j] = (char)i;
}
for(int o=65,p=26;o<91;o++,p++)
{
c[p] = (char)o;
}
for(int m=48,n=52;m<58;m++,n++)
{
c[n] = (char)m;
}
String sRand = "";
for(int i=0;i<4;i++)
{
int x = rand2.nextInt(62);
String temp = String.valueOf(c[x]);
sRand += temp;
g.setColor(new Color(20 + rand2.nextInt(110),20 + rand2.nextInt(110),20 + rand2.nextInt(110)));
g.drawString(temp, 20 * i + 6, 24);
}
session.setAttribute("randString", sRand);
g.dispose();
ImageIO.setUseCache(true);
ImageIO.write(image, "JPEG", os);
//注意看以下几句的使用
os.flush();
os.close();
os=null;
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
}
catch(IllegalStateException e)
{
e.printStackTrace();
}
%>