The code picture on the page is a servlet, using jquery to implement the asynchronous validation information
Import Java.awt.Color;
Import Java.awt.Font;
Import Java.awt.Graphics2D;
Import Java.awt.image.BufferedImage;
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 Verifycodeservlet extends HttpServlet {//Verify code picture width.
private int width = 60;
The height of the verification code picture.
private int height = 20;
Number of authentication code characters private int codecount = 4;
private int x = 0;
Font height private int fontheight;
private int Codey; Char[] codesequence = {' A ', ' B ', ' C ', ' D ', ' E ', ' F ', ' G ', ' H ', ' I ', ' J ', ' K ', ' L ', ' M ', ' N ', ' O ', ' P ', ' Q ', ' R ',
' S ', ' T ', ' U ', ' V ', ' W ', ' X ', ' Y ', ' Z ', ' 0 ', ' 1 ', ' 2 ', ' 3 ', ' 4 ', ' 5 ', ' 6 ', ' 7 ', ' 8 ', ' 9 '}; /** * Initialize validation picture properties
*/public void init () throws servletexception {//) Get initial information/width String strwidth = this from Web.xml.
Getinitparameter ("width");
Height String strheight = this.getinitparameter ("height");
Number of characters String Strcodecount = This.getinitparameter ("Codecount"); Converts the configured information to a numeric try {if (strwidth!= null && strwidth.length ()!= 0) {width = Integer.par
Seint (Strwidth);
} if (strheight!= null && strheight.length ()!= 0) {height = Integer.parseint (strheight); } if (Strcodecount!= null && strcodecount.length ()!= 0) {codecount = Integer.parseint (st
Rcodecount);
The catch (NumberFormatException e) {} x = width/(codecount + 1);
Fontheight = height-2;
Codey = height-4; } protected void Service (HttpServletRequest req, HttpServletResponse resp) throws Servletexception, java.io . Ioexception {//define image buffer BufferedImage buffimg = new BufferedImage (width, height, bufferedimage.type
_INT_RGB);
Graphics2D g = buffimg.creategraphics ();
Create a random number generator class Random Random = new Random ();
Fill the image with a white g.setcolor (color.white);
G.fillrect (0, 0, width, height);
To create a font, the size of the font should be based on the height of the picture.
Font font = new Font ("Fixedsys", Font.plain, Fontheight);
Sets the font.
G.setfont (font);
Draw a border.
G.setcolor (Color.Black);
G.drawrect (0, 0, width-1, height-1);
Randomly generated 160 lines of interference, so that the image of the authentication code is not easily detected by other programs.
G.setcolor (Color.Black);
for (int i = 0; i < 160 i++) {int x = random.nextint (width);
int y = random.nextint (height);
int xl = Random.nextint (12);
int yl = Random.nextint (12);
G.drawline (x, y, X + xl, y + yl);
The//Randomcode is used to save the randomly generated verification code so that the user can authenticate after logging in.
StringBuffer Randomcode = new StringBuffer (); int red = 0, Green = 0, blue = 0;
A validation code that randomly generates CODECOUNT numbers.
for (int i = 0; i < Codecount i++) {//Get a randomly generated captcha number.
String Strrand = string.valueof (Codesequence[random.nextint (36)]);
Produces a random color component to construct a color value, so that the color values of each digit of the output will be different.
Red = random.nextint (255);
Green = Random.nextint (255);
Blue = Random.nextint (255);
Draws the validation code into the image with a randomly generated color.
G.setcolor (New Color (red, green, blue));
g.DrawString (Strrand, (i + 1) * x, Codey);
The resulting four random numbers are grouped together.
Randomcode.append (Strrand);
///Save the four-digit CAPTCHA to the session.
HttpSession session = Req.getsession ();
Session.setattribute ("Validatecode", randomcode.tostring ());
Disables image caching.
Resp.setheader ("Pragma", "No-cache");
Resp.setheader ("Cache-control", "No-cache");
Resp.setdateheader ("Expires", 0);
Resp.setcontenttype ("Image/jpeg");
Outputs the image to the servlet output stream.
Servletoutputstream SOS = Resp.getoutputstream ();Imageio.write (buffimg, "JPEG", SOS);
Sos.close ();
}} import Java.awt.Color;
Import Java.awt.Font;
Import Java.awt.Graphics2D;
Import Java.awt.image.BufferedImage;
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 Verifycodeservlet extends HttpServlet {//Verify code picture width.
private int width = 60;
The height of the verification code picture.
private int height = 20;
Number of authentication code characters private int codecount = 4;
private int x = 0;
Font height private int fontheight;
private int Codey; Char[] codesequence = {' A ', ' B ', ' C ', ' D ', ' E ', ' F ', ' G ', ' H ', ' I ', ' J ', ' K ', ' L ', ' M ', ' N ', ' O ', ' P ', ' Q ', ' R ', ' S ', '
T ', ' U ', ' V ', ' W ', ' X ', ' Y ', ' Z ', ' 0 ', ' 1 ', ' 2 ', ' 3 ', ' 4 ', ' 5 ', ' 6 ', ' 7 ', ' 8 ', ' 9 '}; /** * Initialize Verify picture properties/public void init () throWS Servletexception {//Web.xml get initial information//width String strwidth = this.getinitparameter ("width");
Height String strheight = this.getinitparameter ("height");
Number of characters String Strcodecount = This.getinitparameter ("Codecount");
Converts the configured information to a numeric try {if (strwidth!= null && strwidth.length ()!= 0) {width = Integer.parseint (strwidth);
} if (strheight!= null && strheight.length ()!= 0) {height = Integer.parseint (strheight);
} if (Strcodecount!= null && strcodecount.length ()!= 0) {codecount = Integer.parseint (Strcodecount);
The catch (NumberFormatException e) {} x = width/(codecount + 1);
Fontheight = height-2;
Codey = height-4; } protected void Service (HttpServletRequest req, HttpServletResponse resp) throws Servletexception, Java.io.IOExceptio
n {//define image buffer BufferedImage buffimg = new BufferedImage (width, height, bufferedimage.type_int_rgb);
Graphics2D g = buffimg.creategraphics (); Create a random number generator class Random RandOm = new Random ();
Fill the image with a white g.setcolor (color.white);
G.fillrect (0, 0, width, height);
To create a font, the size of the font should be based on the height of the picture.
Font font = new Font ("Fixedsys", Font.plain, Fontheight);
Sets the font.
G.setfont (font);
Draw a border.
G.setcolor (Color.Black);
G.drawrect (0, 0, width-1, height-1);
Randomly generated 160 lines of interference, so that the image of the authentication code is not easily detected by other programs.
G.setcolor (Color.Black);
for (int i = 0; i < 160 i++) {int x = random.nextint (width);
int y = random.nextint (height);
int xl = Random.nextint (12);
int yl = Random.nextint (12);
G.drawline (x, y, X + xl, y + yl);
The//Randomcode is used to save the randomly generated verification code so that the user can authenticate after logging in.
StringBuffer Randomcode = new StringBuffer ();
int red = 0, green = 0, blue = 0;
A validation code that randomly generates CODECOUNT numbers.
for (int i = 0; i < Codecount i++) {//Get a randomly generated captcha number.
String Strrand = string.valueof (Codesequence[random.nextint (36)]);
Produces a random color component to construct a color value, so that the color values of each digit of the output will be different.
Red = random.nextint (255);
Green = Random.nextint (255);
Blue = Random.nextint (255);
Draws the validation code into the image with a randomly generated color. G.setcolor(New Color (red, green, blue));
g.DrawString (Strrand, (i + 1) * x, Codey);
The resulting four random numbers are grouped together.
Randomcode.append (Strrand);
///Save the four-digit CAPTCHA to the session.
HttpSession session = Req.getsession ();
Session.setattribute ("Validatecode", randomcode.tostring ());
Disables image caching.
Resp.setheader ("Pragma", "No-cache");
Resp.setheader ("Cache-control", "No-cache");
Resp.setdateheader ("Expires", 0);
Resp.setcontenttype ("Image/jpeg");
Outputs the image to the servlet output stream.
Servletoutputstream SOS = Resp.getoutputstream ();
Imageio.write (buffimg, "JPEG", SOS);
Sos.close (); }
}
Above this jquery implementation of no refresh verification Code Simple example is small set to share all the content of everyone, hope to give you a reference, but also hope that we support the cloud habitat community.