jsp页面验证码完整实例

来源:爱站网时间:2020-06-16编辑:网友分享
现在在servlet上绘制一个验证代码的图片,让它显示在页面上,然后使用js方法刷新验证代码,下文是爱站技术频道小编为大家带来的jsp页面验证码完整实例,感兴趣的朋友可以参考下文。

YPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

现在在servlet上绘制一个验证代码的图片,让它显示在页面上,然后使用js方法刷新验证代码,下文是爱站技术频道小编为大家带来的jsp页面验证码完整实例,感兴趣的朋友可以参考下文。

项目结构如下,MyEclipse中新建一个Web Project,取名servlet

1、src下new一个servlet类

package com.servlet;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class IdentityServlet extends HttpServlet {

  public static final char[] chars={'2','3','4','5','6','7','8','9','A'};//自定义验证码池
  public static Random random=new Random();  //随机数
  
  public static String getRandomString(){  //获取6位随机数,放在图片里
    StringBuffer buffer=new StringBuffer();
    for(int i=0;i
   */
  public void destroy() {
    super.destroy(); // Just puts "destroy" string in log
    // Put your code here
  }

  /**
   * The doGet method of the servlet. 
* * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("image/jpeg");  //设置输出类型 String randomString = getRandomString();  //随机字符串 request.getSession(true).setAttribute("randomString", randomString);//放到session里 int width=100;  //图片宽度 int height=30;  //图片高度 Color color=getRandomColor();  //随机颜色,用于背景色 Color reverse=getReverseColor(color);//反色,用于前景色 //创建一个彩色图片 BufferedImage bi=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g=bi.createGraphics();  //绘图对象 g.setFont(new Font(Font.SANS_SERIF,Font.BOLD,16));//设置字体 g.setColor(color);//设置颜色 g.fillRect(0, 0, width, height);//绘制背景 g.setColor(reverse); g.drawString(randomString, 18, 20);//绘制随机字符 for(int i=0,n=random.nextInt(100);i * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } /** * Initialization of the servlet.
* * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }

2、web.xml,会自动生成servlet和servlet-mapping的配置

 

IdentityServletcom.servlet.IdentityServletIdentityServlet/servlet/IdentityServletindex.jsp

3、WebRoot下新建一个html,展示验证码

Insert title here

启动Tomcat,输入网址:http://localhost:8080/servlet/identity.html,效果如下:

点击‘换个图片',会生成新的验证码。

以上这些是爱站技术频道小编给大家介绍的jsp页面验证码完整实例,看完了这篇文章,相信大家都了解了,更多的专业资讯尽在js.aizhan.com吧!

上一篇:详解http请求中的Content-Type

下一篇:JSP 中Spring Bean 的作用域详解

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载