利用java实现验证码
来源:互联网 发布:侮辱罪 网络点击量 编辑:程序博客网 时间:2024/06/06 17:39
利用servlet实现java验证码:
产生一张图片
package com;import java.awt.Color;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.IOException;import java.io.PrintWriter;import java.util.Random;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class CreateImage extends HttpServlet {/* 生成一张图片 * (non-Javadoc) * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { BufferedImage bi = new BufferedImage(68,22,BufferedImage.TYPE_INT_RGB); Graphics g= bi.getGraphics(); Color c=new Color(200,150,255); g.setColor(c); g.fillRect(0, 0, 68, 22); char ch[] ="QWERTYUIOPASDFGHJKLZXCVBNM0123456789".toCharArray(); int len=ch.length; int index; Random r = new Random(); StringBuffer sb=new StringBuffer(); for(int i=0;i<4;i++){ index=r.nextInt(len); g.setColor(new Color(r.nextInt(88),r.nextInt(188),r.nextInt(255))); //把字符串传到图片指定位置 g.drawString(ch[index]+" ", (i*15)+3, 18); //为加入到session中做准备 sb.append(ch[index]); } request.getSession().setAttribute("piccode", sb.toString()); ImageIO.write(bi, "JPG", response.getOutputStream());}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { doGet(request,response);}}
index.jsp
<script type="text/javascript">//在url末尾加一段数据告诉服务器这不是同一个请求 function flushimage(){ var time=new Date(); document.getElementById("image").src="<%=request.getContextPath()%>/servlet/CreateImage?id="+time; }</script> </head> <body> <form action="<%=request.getContextPath()%>/servlet/loginServlet" method="get"> 验证码:<input type="text" value="" name="checkcode"/> <img alt="验证码" id="image" src="<%=request.getContextPath()%>/servlet/CreateImage"> <a href="javascript:flushimage()" >看不清楚</a><br> <input type="submit" value="提交"/> </form> </body>
校验servlet
package com;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class loginServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter(); String checkcode= request.getParameter("checkcode"); checkcode=checkcode.toUpperCase(); String piccode=(String) request.getSession().getAttribute("piccode"); if(checkcode.equals(piccode)){ out.println("验证通过"); } else{ out.println("验证失败"); }out.flush();out.close();}}web.xml:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name></display-name> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>CreateImage</servlet-name> <servlet-class>com.CreateImage</servlet-class> </servlet> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>loginServlet</servlet-name> <servlet-class>com.loginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CreateImage</servlet-name> <url-pattern>/servlet/CreateImage</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>loginServlet</servlet-name> <url-pattern>/servlet/loginServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
http://blog.csdn.net/rocky_03/article/details/52145280
0 0
- 利用java实现验证码
- JAVA实现利用第三方平台发送短信验证码
- 利用HttpHandler实现验证码
- 利用kaptcha实现验证码(Servlet实现)
- 利用kaptcha实现验证码(SpringMVC实现)
- java 实现验证码
- JAVA实现验证码
- 实现Java验证码
- JAVA实现验证码
- java实现验证码
- java 实现验证码
- java实现验证码
- Java实现验证码
- Java验证码实现
- Java实现验证码
- Java实现验证码
- java验证码实现
- JAVA实现验证码
- 基石---web开发技术发展史
- MVP 入门 (Android demo解析)
- 程序设计模式(五) C++ 单实例(Singleton)模式
- MyCat:开源分布式数据库中间件
- 按层次遍历二叉树算法
- 利用java实现验证码
- dubbo能做什么
- JZOJ 2112——纪中食堂
- Android 屏幕适配方案(三)
- Lisp in a Box下载及简单使用
- Spring第六篇【Spring AOP模块】
- mysqldump常用备份恢复方法
- 找出字符在字符串中出现的次数
- 解决dom4j document.asXML内容为空时自闭合的问题