jsp implementiert grafischen Verifizierungscode
Autor:Eve Cole
Aktualisierungszeit:2009-07-02 17:08:30
Aufrufmethode
<img src=" http://...../getImg ">
Das Prinzip besteht darin, im Servlet zufällig eine 4-stellige Zahl zwischen 1000 und 9999 zu generieren
Dann schreiben Sie diese Nummer in die Sitzung
Geben Sie ein Bild aus, auf dem diese vier Zahlen stehen
Auf der Serverseite basierend auf der vom Benutzer eingegebenen Nummer und
Wertevergleich in der Sitzung.
Paket com.schoolwx.util;
java.io.* importieren;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import javax.servlet.*;
import javax.servlet.http.*;
java.awt.* importieren;
import java.awt.image.*;
/**
* Titel: getImg.java
* Beschreibung: Diese Klasse implementiert hauptsächlich die zufällige Generierung eines 4-stelligen Bestätigungscodes und dessen Schreiben in die Sitzung.
* Urheberrecht: Copyright (c) 2003
* Unternehmen: Blue Star Software
* @author Falke
* @Version 1.1
*/
öffentliche Klasse getImg erweitert HttpServlet {
private Font mFont=new Font("宋体", Font.PLAIN,12);//Legen Sie die Schriftart fest
//Beitrag verarbeiten
public void doPost(HttpServletRequest-Anfrage, HttpServletResponse-Antwort)
wirft ServletException,IOException {
doGet(Anfrage,Antwort);
}
public void doGet(HttpServletRequest-Anfrage, HttpServletResponse-Antwort)
wirft ServletException,IOException {
//Erhalte eine Zufallszahl von 1000-9999
String s="";
int intCount=0;
intCount=(new Random()).nextInt(9999);//
if(intCount<1000)intCount+=1000;
s=intCount+"";
//Wert für die Sitzung zahlen.
HttpSession session=request.getSession (true);
session.setAttribute("getImg",s);
Response.setContentType("image/gif");
ServletOutputStream out=response.getOutputStream();
BufferedImage image=new BufferedImage(35,14,BufferedImage.TYPE_INT_RGB);
Graphicsgra=image.getGraphics();
//Hintergrundfarbe festlegen
gra.setColor(Color.gelb);
gra.fillRect(1,1,33,12);
//Schriftfarbe festlegen
gra.setColor(Color.black);
gra.setFont(mFont);
//Zahlen ausgeben
char c;
for(int i=0;i<4;i++) {
c=s.charAt(i);
gra.drawString(c+"",i*7+4,11); //7 ist die Breite, 11 ist die obere und untere Höhenposition
}
JPEGImageEncoder Encoder=JPEGCodec.createJPEGEncoder(out);
Encoder.encode(image);
out.close();
}
}
http://blog.csdn.net/lixiaolong_blog/archive/2007/01/25/1493417.aspx