JSP login verification, Web login verification with verification Code checksum, login function to add verification code
Part_1: Class specifically used to generate a CAPTCHA picture: Verificationcode.java
Package cn.mike.javase.test;
Import Java.awt.Color;
Import Java.awt.Font;
Import Java.awt.Graphics2D;
Import Java.awt.image.BufferedImage;
Import Java.io.File;
Import java.io.FileNotFoundException;
Import Java.io.FileOutputStream;
Import java.io.IOException;
Import Java.io.OutputStream;
Import Java.util.Random;
Import Javax.imageio.ImageIO;
Import Org.junit.Test; /** * @author: Administrator * @function: This is the class used to test randomly generated captcha images;/public class Verificationcode {/** * unit test
, try to automatically generate the verification code picture////This function is used in unit testing, here private outside of the call can not be; * @Test/* Public */private void Test_fun () {
Verificationcode VC = new Verificationcode ();
BufferedImage image = Vc.getimage (); try {//Generate a CAPTCHA picture and save to the specified path Verificationcode.output (image, New FileOutputStream (". \\imag
E\\vcode_2.jpg "));
catch (FileNotFoundException e) {e.printstacktrace (); ///Output randomly generated text content to the console for verifying System.out.println (Vc.gettEXT ()); private int w = 70;//wide private int h = 35;//High private String text;//text content (authentication code string) Private Random R = new R
Andom ();
Private string[] FontNames = {"XXFarEastFont-Arial", "XXFarEastFont-Arial", "bold", "Microsoft Ya-hei", "italics _gb2312"}; The random character set does not include 0 and o,o,1 and L, because these are not easily distinguishable from private String codes = "23456789abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYXZ
";
Background color of the CAPTCHA Picture: white private color bgcolor = new color (255, 255, 255); /** * Returns a CAPTCHA image buffer object: BufferedImage */Public BufferedImage getImage () {BufferedImage image = Createima
GE ();
Gets the drawing environment (brush tool) graphics2d g2 = (graphics2d) image.getgraphics ();
SB: Used to save Authenticode string text content StringBuilder SB = new StringBuilder ();
for (int i = 0; i < 4; ++i) {//randomly generate 4 characters String s = Randomchar () + "";
Sb.append (s);
float x = i * 1.0F * W/4;
G2.setfont (Randomfont ());
G2.setcolor (Randomcolor ());
G2.drawstring (S, x, h-5); } This.text = Sb.tostring ();//record Authenticode text content DRAWline (image);//Draw interference line return image;
/** * @return Get Authenticode text content */public String GetText () {return text; /** * @param image * @param out * Writes the text to the specified output stream.
For example, in this test FileOutputStream specified save path/public static void output (BufferedImage image, outputstream out) {try {
Imageio.write (image, "JPEG", out);
catch (IOException e) {e.printstacktrace ();
} private void DrawLine (BufferedImage image) {graphics2d g2 = (graphics2d) image.getgraphics ();
for (int i = 0; i < 3; ++i) {//Draw 3 interference line int x1 = r.nextint (w);
int y1 = R.nextint (h);
int x2 = r.nextint (w);
int y2 = r.nextint (h);
G2.setcolor (Color.Blue);
G2.drawline (x1, y1, x2, y2);
}} private Color Randomcolor () {int red = R.nextint (150);
int green = R.nextint (150);
int blue = R.nextint (150);
return new Color (red, green, blue); Private Font Randomfont () {int index = R.nextint (fontnames.length);
String fontname = Fontnames[index];
int style = R.nextint (4);
int size = R.nextint (5) + 24;
return new Font (FontName, style, size);
Private char Randomchar () {int index = R.nextint (Codes.length ());
Return Codes.charat (index); Private BufferedImage CreateImage () {bufferedimage image = new BufferedImage (W, H, bufferedimage.type_
INT_RGB);
graphics2d g2 = (graphics2d) image.getgraphics ();
G2.setcolor (This.bgcolor);
G2.fillrect (0, 0, W, h);
return image; }
}
part_2: Login interface: login.jsp
<%@ page language= "java" import= "java.util.*" pageencoding= "UTF-8"%> <% String Path = Request.getcontextpath
(); String basepath = request.getscheme () + "://" + request.getservername () + ":" + request.getserverport () + PA
th + "/"; %> <! DOCTYPE HTML PUBLIC "-//w3c//dtd HTML 4.01 transitional//en" >
part_3: Servlet:LoginVerificationServlet.java
for processing login checksums
Package cn.mike.servlet.test_1212;
Import Java.awt.image.BufferedImage;
Import java.io.IOException;
Import javax.servlet.ServletException;
Import Javax.servlet.http.HttpServlet;
Import Javax.servlet.http.HttpServletRequest;
Import Javax.servlet.http.HttpServletResponse;
Import Cn.mike.javase.test.VerificationCode; public class Getverificationcodeservlet extends HttpServlet {private static final long Serialversionuid =-35209946753
66100452L;
public void doget (HttpServletRequest request, httpservletresponse response) throws Servletexception, IOException {
1. Create a new Verificationcode class; Verificationcode VC = new Verificationcode ();
2. Obtaining BufferedImage objects from the Verificationcode class; BufferedImage bufimage = Vc.getimage ();
3. Obtain the text content in the verification code at the same time, and put it into the session field for verification; String Code_text = Vc.gettext ();
Request.getsession (). setattribute ("Code_text", Code_text); 4. Output the generated picture to the client browser verificationcode.output (Bufimage, Response.getoutputstream ());
}//end Method-doget public void DoPost (HttpServletRequest request, httpservletresponse response) throws Serv
Letexception, IOException {//do same as get-method:doget (request, response); }//End Method-dopost}
part_4: Prompt interface After successful login 1:success-page-1.jsp
<%@ page language= "java" import= "java.util.*" pageencoding= "UTF-8"%> <% String Path = Request.getcontextpath
(); String basepath = request.getscheme () + "://" + request.getservername () + ":" + request.getserverport () + PA
th + "/"; %> <! DOCTYPE HTML PUBLIC "-//w3c//dtd HTML 4.01 transitional//en" >
part_5: Prompt interface After successful login 1:success-page-2.jsp
<%@ page language= "java" import= "Java.util.Date" pageencoding= "UTF-8"%> <%@ page language= "java" import= "Java . text.
SimpleDateFormat "%> <% String Path = Request.getcontextpath (); String basepath = request.getscheme () + "://" + request.getservername () + ":" + request.getserverport () + PA
th + "/"; %> <! DOCTYPE HTML PUBLIC "-//w3c//dtd HTML 4.01 transitional//en" >
The above is a small set to introduce the JSP implementation of the login function to add verification code, we hope to help, if you have any questions please give me a message, small series will promptly reply to everyone. Here also thank you very much for the cloud Habitat Community website support!