Java 验证码

package com.softeem.cc.servlet;


import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;


import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;


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


public class CheckCodeServlet extends HttpServlet {



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

}



public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
   
int width=80;

int height=30;
int space=width/16;
int wwidth=(width-space*5)/4;

BufferedImage image=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

Graphics pen=image.getGraphics();

pen.setColor(Color.LIGHT_GRAY);
pen.fillRect(0, 0, width, height-space*2);
pen.setColor(getColor());
pen.drawOval(0, 0, 30, 30);


Random r=new Random();

for(int i=1;i<=5;i++){
pen.setColor(getColor());
pen.drawLine(r.nextInt(width), r.nextInt(height), r.nextInt(width), r.nextInt(height));

}

for(int i=1;i<=6;i++){
pen.setColor(getColor());
pen.fillOval(r.nextInt(width), r.nextInt(height), r.nextInt(10), r.nextInt(10));

}
String code="";
for(int i=1;i<=4;i++){
int m=r.nextInt(26)+97;
byte[]b={(byte)m};
String s=new String(b) ;
code+=s;
pen.setColor(getColor());
pen.setFont(new Font("黑体",Font.BOLD,height-space*2));
pen.drawString(s, space*i+wwidth*(i-1),height-2*space);


}
HttpSession session=request.getSession();
session.setAttribute("code", code);

ImageIO.write(image, "jpg", response.getOutputStream());
}

private Color getColor(){
Random r=new Random();
int red=r.nextInt(256);
int green=r.nextInt(256);
int blue=r.nextInt(256);

return new Color(red,green,blue);
}




}


web.xml 配置


  <servlet>
    <servlet-name>CheckCodeServlet</servlet-name>
    <servlet-class>com.softeem.cc.servlet.CheckCodeServlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.softeem.cc.servlet.LoginServlet</servlet-class>
  </servlet>


jsp页面

 <input type="text" name="code" style="width:80px"/>
                 <script type="text/javascript">
                  function changeCode(){
                  document.getElementById("codeImg").src="CheckCodeServlet?param="+Math.random();
                  }
                 </script>
                 <img  id="codeImg"width="80" height="30" src="CheckCodeServlet" alt="看不起。点一下" οnclick="changeCode()">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值