0
点赞
收藏
分享

微信扫一扫

jsp新代码第161课

栖桐 2022-04-23 阅读 41
java

new161.java

package pack02;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class new161
 */
@WebServlet(name="new161",urlPatterns = "/page02/pack02.new161")
public class new161 extends HttpServlet 
{
	private static final long serialVersionUID = 1L;
       
 
    public new161() 
    {
        super();
         
    }

 
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		response.setContentType("image/jpeg");
		HttpSession session = request.getSession();
		int width = 100;
		int height = 30;
		//设置不缓存图片
		response.setHeader("Pragram", "No-cache");
		response.setHeader("Cache-Control", "no-cache");
		response.setDateHeader("Expires", 0);
		
		//创建内存图像
		BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
		Graphics g = image.getGraphics();
		
		//随机码的字符表
		String chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		char[] rands = new char[4];
		for (int i = 0; i < rands.length; i++)
		{
			int rand = (int)(Math.random() * 36);
			rands[i] = chars.charAt(rand);			
		}
		
		//背景
		g.setColor(new Color(0xDCDCDC));
		g.fillRect(0, 0, width, height);
		
		//干扰点
		for (int i = 0; i < 120; i++)
		{
			int x = (int)(Math.random() * width);
			int y = (int)(Math.random() * height);
			int red = (int)(Math.random() * 255);
			int green = (int)(Math.random() * 255);
			int blue = (int)(Math.random() * 255);
			g.setColor(new Color(red,green,blue));
			g.drawOval(x, y, 1, 0);
		}
		
		g.setColor(Color.BLACK);
		g.setFont(new Font(null, Font.ITALIC|Font.BOLD, 18));
		
		//画字符
		g.drawString("" + rands[0], 1, 17);
		g.drawString("" + rands[1], 25, 15);
		g.drawString("" + rands[2], 50, 18);
		g.drawString("" + rands[3], 75, 16);
		g.dispose();
		
		//将图像输出到客户端
		ServletOutputStream outputStream = response.getOutputStream();
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		ImageIO.write(image, "JPEG", baos);
		byte[] buffer = baos.toByteArray();
		response.setContentLength(buffer.length);
		outputStream.write(buffer);
		baos.close();
		outputStream.close();
		
		session.setAttribute("checkCode", new String(rands));
		
		
	}

 
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
 
		doGet(request, response);
	}

}
举报

相关推荐

0 条评论