最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

实现JAVA验证码

来源:动视网 责编:小OO 时间:2025-09-27 00:20:01
文档

实现JAVA验证码

yanZm.jsp:ÑéÖ¤ÂëfunctionchangeImg(){vara=document.getElementById("mySpan");a.innerHTML='¿´²»Çå';//?mySpan¦Ë}¿´²»Çåservlet:ImageServlet.javapackagecom.servlet;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.image.Buffe
推荐度:
导读yanZm.jsp:ÑéÖ¤ÂëfunctionchangeImg(){vara=document.getElementById("mySpan");a.innerHTML='¿´²»Çå';//?mySpan¦Ë}¿´²»Çåservlet:ImageServlet.javapackagecom.servlet;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.image.Buffe
yanZm.jsp:

ÑéÖ¤Âë

<%@ page language="java" pageEncoding="utf-8"%>

<%

String path = request.getContextPath(); 

String basePath = request.getScheme() + "://" 

   + request.getServerName() + ":" + request.getServerPort() 

   + path + "/"; 

%>

href="#" onclick="changeImg();">¿´²»Çå

 

servlet:ImageServlet.java

package com.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 javax.servlet.ServletException; 

import javax.servlet.ServletOutputStream; 

import javax.servlet.http.HttpServlet; 

import javax.servlet.http.HttpServletRequest; 

import javax.servlet.http.HttpServletResponse; 

import javax.servlet.http.HttpSession; 

public class ImageServlet extends HttpServlet { 

private static final long serialVersionUID = 1L; 

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=150;//ÑéÖ¤ÂëͼƬ¿í¶È 

  int height=60;//ÑéÖ¤ÂëͼƬ¸ß¶È 

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

  Graphics g=image.getGraphics(); 

  Random random=new Random();//´´½¨Ò»¸öËæ»úÀà 

  g.setColor(getRandColor(200,250));//±³¾°ÑÕɫҪƫµ­ 

  g.fillRect(0, 0, width, height);//»­±³¾° 

  g.setColor(getRandColor(0,255));//±ß¿òÑÕÉ« 

        g.drawRect(0, 0, width-1, height-1);//»­±ß¿ò 

  g.setColor(getRandColor(160,200));// Ëæ»ú²úÉú5Ìõ¸ÉÈÅÏߣ¬Ê¹Í¼ÏóÖеÄÈÏÖ¤Âë²»Ò×±»ÆäËü³ÌÐò̽²âµ½ 

for(int i=0;i<8;i++){

   int x=random.nextInt(width); 

   int y=random.nextInt(height); 

   int x1=random.nextInt(width); 

   int y1=random.nextInt(height); 

   g.drawLine(x, y, x1, y1); 

  } 

  g.setColor(getRandColor(160,200));// Ëæ»ú²úÉú100µã£¬Ê¹Í¼ÏóÖеÄÈÏÖ¤Âë²»Ò×±»ÆäËü³ÌÐò̽²âµ½ 

for(int i=0;i<100;i++){

   int x=random.nextInt(width); 

   int y=random.nextInt(height); 

   g.drawLine(x, y, x, y); 

  } 

        Font font = new Font("Times New Roman", Font.ITALIC,38);  // ´´½¨×ÖÌ壬×ÖÌåµÄ´óСӦ¸Ã¸ù¾ÝͼƬµÄ¸ß¶ÈÀ´¶¨¡£ 

        g.setFont(font);//ÉèÖÃ×ÖÌå 

        int length = 6;  // ÉèÖÃĬÈÏÉú³É4¸öÑéÖ¤Âë 

  String s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567"; // ÉèÖñ¸Ñ¡ÑéÖ¤Âë:°üÀ¨"a-z"ºÍÊý×Ö"0-9" 

  String sRand=""; 

     

        // ÓÃËæ»ú²úÉúµÄÑÕÉ«½«ÑéÖ¤Âë»æÖÆµ½Í¼ÏñÖС£ 

        // Éú³ÉËæ»úÑÕÉ«(ÒòΪÊÇ×öǰ¾°£¬ËùÒÔÆ«Éî)   

        //µ÷Óú¯Êý³öÀ´µÄÑÕÉ«Ïàͬ£¬¿ÉÄÜÊÇÒòΪÖÖ×ÓÌ«½Ó½ü£¬ËùÒÔÖ»ÄÜÖ±½ÓÉú³É 

        g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));   

for(int i=0;i   String ch=String .valueOf(s.charAt(random.nextInt(s.length()))); 

   sRand+=ch; 

   g.drawString(ch, 22*i+12, (random.nextInt(5)-2)*i+40); 

  } 

  //½«Éú³ÉµÄ×Ö·û´®´æ´¢ÔÚsessionÖР

  HttpSession session=request.getSession();   

  session.setAttribute("checkCode", sRand); 

  g.dispose();//ͼÏñÉúЧ 

  //½ûֹͼÏñ»º´æ 

  response.setHeader("Pragma", "No-cache"); 

  response.setHeader("Cache-Control", "no-cache"); 

  response.setDateHeader("Expires", 0);   

  response.setContentType("image/jpeg"); 

  //´´½¨¶þ½øÖƵÄÊä³öÁ÷ 

  ServletOutputStream sos=response.getOutputStream(); 

        // ½«Í¼ÏñÊä³öµ½ServletÊä³öÁ÷ÖС£ 

        ImageIO.write(image, "jpeg", sos); 

        sos.flush(); 

        sos.close(); 

public Color getRandColor(int lower,int upper){ 

  Random random = new Random(); 

if(upper>255)

   upper=255; 

if(upper<1)

   upper=1; 

if(lower<1)

   lower=1; 

if(lower>255)

   lower=255; 

  int r=lower+random.nextInt(upper-lower); 

  int g=lower+random.nextInt(upper-lower); 

  int b=lower+random.nextInt(upper-lower); 

  return new Color(r,g,b); 

 

resultServlet.java

package com.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class resultServlet 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 {

  response.setContentType("text/html;charset=utf-8");

  String validateC = (String)request.getSession().getAttribute(

    "checkCode");

  String veryCode = request.getParameter("txtyzm");

  PrintWriter out = response.getWriter();

  if (veryCode == null || "".equals(veryCode)) {

out.print("");

  } else {

   if (validateC.equals(veryCode)) {

out.print("");

   } else {

out.print("");

   }

  }

  out.flush();

  out.close();

 }

}

web.xml:

 xmlns="http://java.sun.com/xml/ns/j2ee" 

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

ImageServlet

com.servlet.ImageServlet

resultServlet

com.servlet.resultServlet

 

ImageServlet

/ImageServlet

resultServlet

/resultServlet

index.jsp

文档

实现JAVA验证码

yanZm.jsp:ÑéÖ¤ÂëfunctionchangeImg(){vara=document.getElementById("mySpan");a.innerHTML='¿´²»Çå';//?mySpan¦Ë}¿´²»Çåservlet:ImageServlet.javapackagecom.servlet;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.image.Buffe
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top