package com.response_study;
import javax.imageio.ImageIO;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
//验证码案例
@WebServlet("/CheckCodeServlet")
public class CheckCodeServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.创建一对象,在内存中图片(验证码图片对象)
int width=100;
int height=50;
BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
//2.美化
//2.1填充背景颜色
Graphics gp=image.getGraphics();//得到画笔对象
gp.setColor(Color.pink);//设置图片背景颜色
gp.fillRect(0,0,width,height);//把背景颜色填充到整个图片
//2.2画边框
gp.setColor(Color.blue);
gp.drawRect(0,0,width-1,height-1);
//2.3写验证码
String str="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM123456789";//要随机生成的字符与数字
Random random=new Random();
for (int i = 1; i <=4; i++) {
int nextInt = random.nextInt(str.length());
char charAt = str.charAt(nextInt);
gp.drawString(charAt+"",20*i,25);
}
//2.4划线
gp.setColor(Color.GREEN);
Random random1=new Random();
for (int i = 0; i <10 ; i++) {
int x1 = random1.nextInt(width);
int y1 = random1.nextInt(height);
int x2 = random1.nextInt(width);
int y2 = random1.nextInt(height);
gp.drawLine(x1,y1,x2,y2);
}
//3.将图片输出到页面展示
ImageIO.write(image,"jpg",response.getOutputStream());
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request,response);
}
}
以上是serlvet代码

2511

被折叠的 条评论
为什么被折叠?



