javaweb验证码代码
来源:互联网 发布:slam包括的算法 编辑:程序博客网 时间:2024/05/18 17:24
js部分
<script type="text/javascript">$(function(){$("#newPic").click(function(){$.ajax({type:"post",url:"ImageAction",success:function(){//$("#codePic").attr("src",img); document.getElementById("codePic").src = "ImageAction";},});});$.ajax({type:"post",url:"ImageAction",success:function(){//$("#codePic").attr("src",img); document.getElementById("codePic").src = "ImageAction";},});}); /* function getPic(){ alert("test"); $("#codePic").attr("src","http://127.0.0.1:8888/TP/codePic?flag="+Math.random()); }; */</script>
前台
<form action="GetCodeImgServlet" method="post"> <p><label class="lbright">验证码:</label> <span> <input type="text" name="code" style="width:70px; vertical-align:middle;" id="validcode"/> <img id="codePic" src="http://127.0.0.1:8888/TP/codePic" width="60" height="21" style="vertical-align:middle;cursor:pointer;"/> </span> <a class="blurry" id="newPic" onclick="getPic();">看不清楚,换一张</a> </p> <input type="submit" value="提交"> </form>
生成验证码的Servlet
package codenum;import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ImageAction extends HttpServlet { /** * 执行登陆的业务处理 * @param request:发送上来的请求 * @return destJsp:目标URL */ public void service(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException{ //设置页面不缓存 response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); //在内存中创建图象 int width = 60, height = 20; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //获取图形上下文 Graphics g = image.getGraphics(); //生成随机类 Random random = new Random(); //设定背景色 g.setColor(getRandColor(220, 250)); g.fillRect(0, 0, width, height); //设定字体 g.setFont(new Font("Times New Roman", Font.PLAIN, 18)); //画边框 //g.drawRect(0,0,width-1,height-1); g.draw3DRect(0,0,width-1,height-1,true); //随机产生155条干扰线,使图象中的认证码不易被其它程序探测到 g.setColor(getRandColor(160, 200)); for (int i = 0; i < 155; i++) { int x = random.nextInt(width); int y = random.nextInt(height); int xl = random.nextInt(12); int yl = random.nextInt(12); g.drawLine(x, y, x + xl, y + yl); } // 取随机产生的认证码(6位数字) String sRand = ""; String s = "012345678901234567890123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ012345678901234567890123456789abcdefghijklmnopqrstuvwxyz"; for (int i = 0; i < 4; i++) { char rand =s.charAt(random.nextInt(s.length())); sRand += rand; // 将认证码显示到图象中 g.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110))); //调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成 g.drawString(String.valueOf(rand), 13 * i + 6, 16); } g.drawOval(0,12,60,11); // 将认证码存入SESSION request.getSession().setAttribute("rand", sRand); // 图象生效 g.dispose(); ServletOutputStream output; try { output = response.getOutputStream(); // 输出图象到页面 ImageIO.write(image, "JPEG", output); } catch (IOException e) { e.printStackTrace(); } } /** * 生成随机颜色 */ private Color getRandColor(int fc, int bc) { Random random = new Random(); if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b); } }
验证验证码的Servlet
package codenum;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 GetCodeImgServlet extends HttpServlet {public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String code = request.getParameter("code");String rand = (String) request.getSession().getAttribute("rand");System.out.println(rand+code);}public void init() throws ServletException {// Put your code here}}
阅读全文
1 0
- JavaWeb验证码代码
- javaweb验证码代码
- javaweb(四):使用Java代码制作验证码
- [JavaWeb]Servlet验证码实现(实例代码)
- JavaWeb验证码
- javaweb 验证码制作
- Javaweb验证码生成
- javaWeb验证码
- javaweb生成验证码
- javaWeb验证码技术
- JavaWeb---制作验证码
- JavaWeb登陆验证码
- JavaWeb实现验证码
- JavaWeb 生成验证码
- JavaWeb---制作验证码
- 【JavaWeb】画验证码图片
- JavaWeb---绘制随机验证码
- javaweb生成验证码图片
- JAVA企业面试题精选 Java基础 11-20
- 安卓开发规范
- Codeforces GYM 100646E: Su-Su-Sudoku 题解
- java-包,权限修饰符
- 网站根目录权限设置
- javaweb验证码代码
- extend扩展jQuery工具方法(一)
- Web服务器工作原理概述
- Python语言基础
- spring入门到精通(一)
- 1048. Find Coins 解析
- day_05文件系统及vi编辑器
- 含有虚函数的空类的内存大小
- 浅谈hibernate的sessionFactory和session