Development tools: Eclipse, Kaptcha-2.3.jar package.
First, create a Web project;
Second, create a new JSP page (content, a text box, a picture container, a submit button)
<body><form action= "check.jsp" ><input type= "text" name= "R" ><input type= "Submit" value= "s" ></form ></body>
Third, you can see the source of the Image verification code (src= "randomcode.jpg") need to configure the Web. xml file. (given to the servlet (the servlet is in Kaptcha-2.3.jar) for processing)
<servlet><servlet-name>Kaptcha</servlet-name><servlet-class> Com.google.code.kaptcha.servlet.kaptchaservlet</servlet-class></servlet><servlet-mapping> <servlet-name>kaptcha</servlet-name><url-pattern>/randomcode.jpg</url-pattern></ Servlet-mapping>
Iv. due to the need for Kaptcha-2.3.jar package, the downloaded jar package is imported into lib. (Copy and paste)
Other:
I. Properties of the Web verification Code
(i) Add a border
<servlet><init-param><description> picture border, legal value: Yes, no</description><param-name> Kaptcha.border</param-name><param-value>yes</param-value> <!--Yes or No--></init-param ></servlet>
(b) Border color
<init-param><description> border color, legal value: r,g,b (and optional alpha) or white,black,blue.</description> <param-name>kaptcha.border.color</param-name><param-value>black</param-value></ Init-param>
(c) Border thickness
<init-param><description> border thickness, legal value:> greater than 0 </description><param-name> Kaptcha.border.thickness</param-name><param-value>1</param-value></init-param>
(d) Picture width
<init-param><description> Picture Width 200</description><param-name>kaptcha.image.width</ Param-name><param-value>200</param-value></init-param>
(v) Picture height
<init-param><description> Pictures High 50</description><param-name>kaptcha.image.height</ Param-name><param-value>50</param-value></init-param>
(vi) Verification Code collection
<init-param><description> text Collection, validation code values get from this collection </description><param-name> Kaptcha.textproducer.char.string</param-name><param-value>1234567890</param-value> <!--Pure Digital -->//<param-value>abcde2345678gfynmnpwx</param-value> <!--text plus English--></init-param>
(vii) Verification code length
<init-param><description> Verification Code length default is 5 </description><param-name> Kaptcha.textproducer.char.length</param-name><param-value>2</param-value></init-param>
(eight) font
<init-param><description> Font Arial, courier</description><param-name> Kaptcha.textproducer.font.names</param-name><param-value>arial, courier</param-value></ Init-param>
(ix) Font size
<init-param><description> Font Size 40px.</description><param-name> Kaptcha.textproducer.font.size</param-name><param-value>40</param-value></init-param>
(10) Font Color
<init-param><description> font Color, legal value: R,g,b or white,black,blue.</description><param-name> Kaptcha.textproducer.font.color</param-name><param-value>black</param-value></init-param >
(11) The interval between each verification code
<init-param><description> text Interval 2</description><param-name> Kaptcha.textproducer.char.space</param-name><param-value>2</param-value></init-param>
(12) Interference realization
<init-param><description> interference Implementation Class </description><param-name>kaptcha.noise.impl</ param-name><param-value><!--Com.google.code.kaptcha.impl.NoNoise-- Com.google.code.kaptcha.impl.defaultnoise</param-value></init-param>
(13) Interference color
<init-param><description> interference color, legal value: R,g,b or white,black,blue.</description><param-name> Kaptcha.noise.color</param-name><param-value>black</param-value></init-param>
(14) Background style
<init-param><description> Picture Style: Watermark Com.google.code.kaptcha.impl.WaterRipple Fish Eye com.google.code.kaptcha.impl.FishEyeGimpy Shadow Com.google.code.kaptcha.impl.Shado Wgimpy</description><param-name>kaptcha.obscurificator.impl</param-name><param-value> Com.google.code.kaptcha.impl.waterripple</param-value></init-param>
(15) Background implementation class
<init-param><description> Background Implementation class </description><param-name>kaptcha.background.impl</ param-name><param-value>com.google.code.kaptcha.impl.defaultbackground</param-value></ Init-param>
(16) Background gradient color
<init-param><description> background color gradient, starting color </description><param-name> Kaptcha.background.clear.from</param-name><param-value>green</param-value></init-param ><init-param><description> background color gradient, end color </description><param-name> Kaptcha.background.clear.to</param-name><param-value>white</param-value></init-param>
(17) Text renderer
<init-param><description> Text Renderer </description><param-name>kaptcha.word.impl</ param-name><param-value>com.google.code.kaptcha.text.impl.defaultwordrenderer</param-value>< /init-param>
(18) The verification code of the image will be saved in the session, where the value is
<init-param><description> key key to store verification code in session </description><param-name> kaptcha.session.key</param-name><param-value>kaptcha_session_key</param-value></ Init-param>
(19) Image Realization Category
<init-param><description> Picture Implementation Class </description><param-name>kaptcha.producer.impl</ param-name><param-value>com.google.code.kaptcha.impl.defaultkaptcha</param-value></ Init-param>
(20) Text implementation class (You can override this class to implement a CAPTCHA in Chinese)
<init-param><description> Text Implementation class </description><param-name>kaptcha.textproducer.impl</ param-name><param-value>com.google.code.kaptcha.text.impl.defaulttextcreator</param-value></ Init-param>
Rewrite the text implementation class to implement the verification code in Chinese:
1. Create a category that inherits the configurable implementation textproducer (in the jar package)
Import Com.google.code.kaptcha.text.textproducer;import Com.google.code.kaptcha.util.configurable;import Java.util.random;public class Chinesetext extends configurable implements Textproducer {public String getText () {int Leng th = GetConfig (). Gettextproducercharlength (); String Finalword = "", FirstWord = ""; int tempint = 0; String[] Array = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "B", "C", "D", "E", "F"}; Random rand = new Random (), for (int i = 0, i < length; i++) {switch (Rand.nextint (array.length)) {Case 1:tempint = Rand . Nextint (+) + 65;firstword = string.valueof ((char) tempint); Break;case 2:int r1,r2,r3,r4; String strh,strl;//high&lowr1 = Rand.nextint (3) + 11; Front closed open [11,14] if (r1 = =) {r2 = Rand.nextint (7);} else {r2 = Rand.nextint (16);} R3 = Rand.nextint (6) + 10;if (R3 = =) {R4 = Rand.nextint (+ 1),} else if (r3 = =) {R4 = Rand.nextint);} else {R4 = Rand.nextint (16);} STRH = Array[r1] + Array[r2];strl = Array[r3] + array[r4];byte[] bytes = new byte[2];bytes[0] = (byte) (Integer.parseint (STRH, +)); bytes[1] = (byte) (Integer.parseint (StrL, +)); FirstWord = new String (b ytes); break;default:tempint = Rand.nextint (+ 48;firstword = string.valueof (char) tempint); Finalword + = FirstWord;} return Finalword;}}
2. Modify the Web. XML configuration
<init-param><description> Text Implementation class </description><param-name>kaptcha.textproducer.impl</ Param-name><param-value>chinesetext</param-value></init-param> Five, Validation code verification (This article is verified using check.jsp) is saved in the session, where the key value is (18th attribute) [HTML] View plain copy<body><%//check is the correct captcha string k = ( String) Session.getattribute (Com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY); String str = request.getparameter ("R"), if (K.equals (str)) Out.print ("true"), Out.print (k + "---" + str);%></body >
VI. extension (Implementation of the addition verification Code)
1. Overriding the Kaptchaservlet class
Import Com.google.code.kaptcha.producer;import Com.google.code.kaptcha.util.config;import Java.awt.image.bufferedimage;import Java.io.ioexception;import Java.util.enumeration;import java.util.Properties; Import Javax.imageio.imageio;import Javax.servlet.servlet;import Javax.servlet.servletconfig;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 Kaptchaservlet extends HttpServlet implements servlet {private Properties Props;private Producer kaptchaproducer;private String sessionkeyvalue;public kaptchaservlet () {this.props = new Properties (); this.kaptchaproducer = Null;this.sessionkeyvalue = null;} public void init (ServletConfig conf) throws Servletexception {super.init (conf); Imageio.setusecache (false); Enumeration initparams = Conf.getinitparameternames (); while (Initparams.hasmoreelemEnts ()) {string key = (string) initparams.nextelement (); String value = Conf.getinitparameter (key); This.props.put (key, value);} Config config = new config (this.props); this.kaptchaproducer = Config.getproducerimpl (); this.sessionkeyvalue = Config.getsessionkey ();} public void Doget (HttpServletRequest req, HttpServletResponse resp) throws Servletexception, IOException { Resp.setdateheader ("Expires", 0L), Resp.setheader ("Cache-control", "No-store, No-cache, must-revalidate"); Resp.addheader ("Cache-control", "post-check=0, pre-check=0"), Resp.setheader ("Pragma", "No-cache"); Resp.setcontenttype ("Image/jpeg"); String Captext = This.kaptchaProducer.createText (); String S1 = captext.substring (0, 1); String s2 = captext.substring (1, 2), int r = integer.valueof (S1). Intvalue () + integer.valueof (S2). Intvalue (); Req.getsession (). SetAttribute (This.sessionkeyvalue, string.valueof (R)); BufferedImage bi = this.kaptchaProducer.createImage (s1+ "+" +s2+ "=?"); Servletoutputstream out = Resp.getoutputstream (); Imageio.write (bI, "JPG", out); try {Out.flush ();} finally {out.close ();}}}
2. Modify the configuration file
<servlet><servlet-name>kaptcha</servlet-name><servlet-class>kaptchaservlet</ Servlet-class></servlet>
The above is a small part of the introduction of the use of open source tools to create a Web page verification code method, I hope we have some help, if you have any questions please give me a message, small series will promptly reply to you. Thank you very much for your support for topic.alibabacloud.com!