jsp implementa código de verificación gráfica
Autor:Eve Cole
Fecha de actualización:2009-07-02 17:08:30
método de llamada
<img src=" http://..../getImg ">
El principio es generar aleatoriamente un número de 4 dígitos 1000-9999 en el servlet.
Luego escribe este número en la sesión.
Genere una imagen con estos cuatro números escritos en ella.
Del lado del servidor, según el número ingresado por el usuario y
Comparación de valores en sesión.
paquete com.schoolwx.util;
importar java.io.*;
importar java.util.*;
importar com.sun.image.codec.jpeg.*;
importar javax.servlet.*;
importar javax.servlet.http.*;
importar java.awt.*;
importar java.awt.image.*;
/**
* Título: getImg.java
* Descripción: esta clase implementa principalmente la generación aleatoria de un código de verificación de 4 dígitos y su escritura en la sesión.
* Copyright: Copyright (c) 2003
* Empresa: Software Estrella Azul
* @autor halcón
* @versión 1.1
*/
getImg de clase pública extiende HttpServlet {
fuente privada mFont=new Font("宋体", Font.PLAIN,12);//Establecer la fuente
//procesar publicación
public void doPost (solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza ServletException, IOException {
doGet(solicitud,respuesta);
}
public void doGet (solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza ServletException, IOException {
//Obtiene un número aleatorio del 1000 al 9999
Cadena s="";
int intCount=0;
intCount=(new Random()).nextInt(9999);//
if(intCount<1000)intCount+=1000;
s=intCount+"";
//Pagar valor a la sesión.
HttpSession sesión=request.getSession (verdadero);
session.setAttribute("getImg",s);
respuesta.setContentType("imagen/gif");
ServletOutputStream out=response.getOutputStream();
Imagen BufferedImage = nueva Imagen Buffered (35,14, Imagen Buffered.TYPE_INT_RGB);
Graphicsgra=image.getGraphics();
//Establecer color de fondo
gra.setColor(Color.amarillo);
gra.fillRect(1,1,33,12);
//Establecer color de fuente
gra.setColor(Color.negro);
gra.setFont(mFont);
//Números de salida
carácter c;
para(int i=0;i<4;i++) {
c=s.charAt(i);
gra.drawString(c+"",i*7+4,11); //7 es el ancho, 11 son las posiciones de altura superior e inferior
}
Codificador JPEGImageEncoder=JPEGCodec.createJPEGEncoder(fuera);
codificador.codificar(imagen);
fuera.cerrar();
}
}
http://blog.csdn.net/lixiaolong_blog/archive/2007/01/25/1493417.aspx