jsp 验证码

<%@page import="java.awt.Graphics2D"%>
<%@page import="java.util.Random"%>
<%@page import="java.awt.Font"%>
<%@page import="javax.imageio.ImageIO"%>
<%@page import="java.awt.Color"%>
<%@page import="java.awt.Graphics"%>
<%@ page import="java.awt.image.BufferedImage"%>
<%@ page language="java" pageEncoding="utf-8" contentType="image/png" %>
<%
int h = 45;
int len = 4;
int w = len*20;
Random r = new Random();
BufferedImage img = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D)img.getGraphics();
//g.setColor(Color.RED);
Color c = new Color(245,245,245);
g.setColor(c);
g.fillRect(0,0,w,h);

String str = "abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXY3456789";

g.setColor(Color.WHITE);

for(int i=0;i<20;i++){
    g.setFont(new Font("宋体",Font.BOLD,r.nextInt(20)+10));
    c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255),r.nextInt(50));
    String s = String.valueOf(str.charAt(r.nextInt(str.length())));
    g.setColor(c);
    g.drawString(s, r.nextInt(w),r.nextInt(h));
}

StringBuffer ss = new StringBuffer();
for(int i=0;i<len;i++){
    int n = -5 +r.nextInt(10);
    g.rotate(n * Math.PI / 180);
    g.setFont(new Font("宋体",Font.BOLD,r.nextInt(15)+15));
    c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255),r.nextInt(55)+200);
    String s = String.valueOf(str.charAt(r.nextInt(str.length())));
    ss.append(s);
    g.setColor(c);
    g.drawString(s, 2+i*20,r.nextInt(10)+25);
}
session.setAttribute("checkcode",ss.toString());

//添加干扰线 点
for(int i=0;i<10;i++){
    c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255),r.nextInt(80));
    g.setColor(c);
    g.drawLine(r.nextInt(w), r.nextInt(h),r.nextInt(w), r.nextInt(h));
    int size = r.nextInt(6)+5;
    g.fillOval(r.nextInt(w),r.nextInt(h),size,size);
}

c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255),r.nextInt(150));
int hh = r.nextInt(h);
for(int i=0;i<=300;i++){
    g.setColor(c);
    double x = i;
    double y = hh+15*Math.sin(10*i*Math.PI/360);
    g.fillOval((int)x, (int)y, 5,5);
}

g.dispose();
ImageIO.write(img, "png", response.getOutputStream());
out.clear();
out = pageContext.pushBody();
%>
时间: 2024-10-02 01:38:19

jsp 验证码的相关文章

JSP验证码

在JSP页面上写随机的4位数验证码 实例化BufferedImage类 得到Graphics画笔给图片填充背景色 然后写上随机数和100个干扰点 用scropt实现刷新验证码 疑问:视频和书上的DrawString 方法不能用 也不知道怎么回事 把String转成了char调用了另外一个drawChars的方法才对 <%@ page language="java" contentType="text/html; charset=GB2312" import =

JSP验证码页面-Serverlet

使用 Get方法,通过设置session和request设置页面状态 <body> <div> <form method=get> <tr> <td align=left>请输入认证码:<input type=text name=rand maxlength=4 value=""></td> <td><img border=0 src="checkcode" onc

JSP验证码简单例子

原文:JSP验证码简单例子 源代码下载地址:http://www.zuidaima.com/share/1550463705320448.htm 几年前用servlet写的一个简单验证码功能.还有许多要完善的,但是验证码已经完善了. 包含登陆界面,可以自己修改下验证码代码把验证码的代码写进后台,生成图片后再输出到页面.也可以把验证码生成更复杂些. 登陆成功  验证失败

jsp验证码的生成

ValidateCodeServlet.java package com.hpe.servlet; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import ja

JSP验证码。

1 package com; 2 3 import java.awt.Color; 4 import java.awt.Font; 5 import java.awt.Graphics2D; 6 import java.awt.image.BufferedImage; 7 import java.io.IOException; 8 import java.util.Random; 9 10 import javax.servlet.ServletException; 11 import java

jsp-5 生成验证码并校验

依然是以上次的代码为底 index.jsp 新增了验证码一栏 注意他的servlet是新建的ImageServlet 而且中间插了一段JS代码用于刷新验证码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String

java实现生成简单图片验证码

原文:java实现生成简单图片验证码 源代码下载地址:http://www.zuidaima.com/share/1550463428840448.htm 项目载图: 该项目要转换为Dynamic web project http://www.zuidaima.com/blog/1618162161323008.htm 另外缺少jar包: http://www.zuidaima.com/jar/search/jstl-1.0.1.htm http://www.zuidaima.com/jar/s

web项目 验证码 小园dd

1. jsp代码 : 1 <Script> 2 function changeImg(){ 3 document.getElementById("certImg").src ="makeCertPic.jsp?it="+Math.random(); /* +Math.random() */ 4 } 5 </Script> 6 7 8 9 <table width="100%" border="0"

浅尝Java验证码制作(下)

方法三: 用开源组件Jcaptcha实现,与Spring组合使用可产生多种形式的验证码,JCaptcha 即为 Java 版本的 CAPTCHA 项目,其是一个开源项目,支持生成图形和声音版的验证码,在生成声音版的验证码时,需要使用到 FreeTTS.而CAPTCHA 全称 Completely Automated Public Turing Test to Tell Computers and Humans Apart,最早作为卡内基梅隆大学的一个科研项目,用于生成一个人类容易通过而计算机难以