Friday, June 4, 2010

struts captcha




what is captcha : Captcha is verify the code
below the sample code for the captch
Captcha.jsp
=------------








Refresh<% String captcha = (String) session.getAttribute("captcha"); String code = (String) request.getParameter("code"); if (captcha != null && code != null) { if (captcha.equalsIgnoreCase(code)) { String url="#"; RequestDispatcher rd=request.getRequestDispatcher(url); rd.forward(request,response); } else { out.print("

The characters you entered didn't match the word verification. Please try again.

");
}
}
%>






the above code include in our jsp and change .





------------------------

package captchas;

import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.*;

import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.*;
import javax.servlet.http.*;


public class CaptchaServlet extends HttpServlet {


protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

int width = 150;
int height = 50;

char data[][] = {
{'g','y','7','0','N','n','1'},
{'G','v','V','t','Y','O','J'},
{'p','z','t','c','f','1','H'},
{'r','u','6','K','f','d','C'},
{'L','1','E','i','x','0','7'},
{'j','c','r','n','u','f','N'},
{'w','v','P','O','K','Y','I'},
{'f','D','J','p','i','x','h'},
{'p','1','3','T','Q','g','k'},
{'t','c','B','C','n','e','x'},
{'1','p','x','T','W','k','v'},
{'E','i','N','I','S','e','r'},
{'0','I','Q','W','c','n','h'},
{'c','C','d','W','K','F','V'},
{'e','8','M','A','J','7','1'},
{'9','A','t','h','o','f','7'},
{'r','j','v','P','S','d','R'},
{'p','J','X','F','v','M','w'},
{'p','W','m','4','1','7','y'},
{'N','a','s','H','U','w','7'},
{'X','f','V','C','J','P','e'},
{'d','K','4','V','l','F','9'},
{'K','Z','G','i','q','O','N'},
{'l','G','V','F','R','o','1'},


{'I','A','a','7','b','2','p'},
{'k','D','r','5','s','I','P'},
{'P','x','H','0','6','M','q'},
{'X','j','q','L','3','K','z'},
{'3','j','V','J','B','1','D'},
{'R','K','l','I','j','E','B'},
{'a','o','7','F','D','X','4'},
{'T','A','l','N','h','0','x'},
{'3','2','G','E','4','j','D'},
{'8','i','E','y','a','t','B'},
{'S','k','s','8','o','A','K'},
{'q','a','z','N','Q','T','m'},
{'d','H','c','r','o','J','U'},
{'B','A','p','H','9','O','M'},
{'8','j','Q','I','d','H','7'},
{'7','t','i','5','V','M','o'},
{'L','A','0','a','w','6','7'},
{'s','L','E','h','M','o','b'},
{'t','q','r','V','N','x','5'}




};


BufferedImage bufferedImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);

Graphics2D g2d = bufferedImage.createGraphics();

Font font = new Font("Georgia", Font.BOLD, 18);
g2d.setFont(font);

RenderingHints rh = new RenderingHints(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);

rh.put(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);

g2d.setRenderingHints(rh);

GradientPaint gp = new GradientPaint(0, 0,
Color.magenta, 0, height/2, Color.black, true);

g2d.setPaint(gp);
g2d.fillRect(0, 0, width, height);

g2d.setColor(new Color(221, 233, 55));

Random r = new Random();
// int index1 = Math.abs(r.nextInt());
// int index=index1%10;
Random randomGenerator = new Random();
int index = randomGenerator.nextInt(999);

System.out.println("index1");
String captcha = String.copyValueOf(data[index]);
System.out.println("capta"+captcha);
request.getSession().setAttribute("captcha", captcha );

int x = 0;
int y = 0;

for (int i=0; i
x += 10 + (Math.abs(r.nextInt()) % 15);
y = 20 + Math.abs(r.nextInt()) % 20;
g2d.drawChars(data[index], i, 1, x, y);

}

g2d.dispose();

response.setContentType("image/png");
OutputStream os = response.getOutputStream();



ImageIO.write(bufferedImage, "png", os);
os.close();
}


protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}


protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}



the above captchaservlet and change the struts code

No comments:

Post a Comment