< 5; i++) { strEnsure += mapTable[(int) (mapTable.length * Math.random())]; } // 将验证码显示在图像中 , 如果要生成更多位的验证码 , 增加drawString语句 g.setColor(Color.red); g.setFont(new Font("Atlantic Inline", Font.PLAIN, 18)); String str = strEnsure.substring(0, 1); g.drawString(str, 8, 17); str = strEnsure.substring(1, 2); g.drawString(str, 20, 15); str = strEnsure.substring(2, 3); g.drawString(str, 35, 18); str = strEnsure.substring(3, 4); g.drawString(str, 50, 15); str = strEnsure.substring(4, 5); g.drawString(str, 65, 18); // 随机产生10个干扰点 Random random = new Random(); for (int i = 0; i < 10; i++) { int x = random.nextInt(width); int y = random.nextInt(height); g.drawOval(x, y, 1, 1); } // 释放图形上下文 g.dispose(); session.setAttribute("yanzhengma",strEnsure);//将验证码写入到session ImageIO.write(image, "JPEG", response.getOutputStream()); out.clear(); }catch(Exception e){ response.sendRedirect("log.jsp"); }%> 在 log.jsp里 验证 jsp alt="看不清"/>jsp';return false;">看不清 , 换一张 。
6. Jsp验证码怎么写 <tr>
<td valign="middle" align="right">
验证码:
<img id="num" src="http://www.xuexi88.com/zhishi/checkCode" />
<a href="javascript:;"
onclick="document.getElementById('num').src = 'http://www.xuexi88.com/zhishi/checkCode?'+(new Date()).getTime()">;换一张</a>
</td>
<td valign="middle" align="left">
<input type="text" class="inputgri" name="number" />
</td>
</tr>
你是不是不知道那个图片怎么换啊?我当时也找了好多改变图片的方法 , 利用系统时间是最好的解决办法
7. 如何用JSP生成验证码 <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@ page import="java.awt.*" %><%@ page import="java.awt.image.*" %><%@ page import="java.util.*" %><%@ page import="javax.imageio.*" %><%! Color getRandColor(int fc,int bc){ Random r = new Random(); if(fc > 255) fc = 255; if(bc > 255) bc = 255; int red = fc + r.nextInt(bc - fc); int green = fc + r.nextInt(bc - fc); int blue = fc + r.nextInt(bc - fc); return new Color(red,green,blue); }%><% //设置页面不缓存 response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0);//下面开始了--生成图像 Random r = new Random(); int width = 60,height = 20; BufferedImage pic = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); Graphics gc = pic.getGraphics(); gc.setColor(getRandColor(200,250)); gc.fillRect(0, 0, width, height); gc.setFont(new Font("Times New Roman",Font.PLAIN,18)); gc.setColor(getRandColor(160,200)); for(int i=0;i<200;i++){ int x1 = r.nextInt(width); int y1 = r.nextInt(height); int x2 = r.nextInt(15); int y2 = r.nextInt(15); gc.drawLine(x1, y1, x2, y2); } gc.setColor(getRandColor(120,240)); for(int i=0;i<100;i++){ int x = r.nextInt(width); int y = r.nextInt(height); gc.drawOval(x, y, 0,0); } String rs=""; String rn=""; for(int i = 0;i<4;i++){ rn = String.valueOf(r.nextInt(10)); rs += rn; gc.setColor(new Color(20+r.nextInt(110),20+r.nextInt(110),20+r.nextInt(110))); gc.drawString(rn,13*i+6,16); } gc.dispose(); try{ session.setAttribute("code", rs);//设置session的属性code为生成的验证码(String类型) , JSP中一般靠session等来传递并获得参数 }catch(Throwable t){ getServletContext().log(t.getMessage());//这里是写log , 但要抓异常 } ImageIO.write(pic,"JPEG",response.getOutputStream());//输出图片到一页面 , 就是流 out.clear();//后面一定要关闭流 , 因为在其他页面会有冲突 out = pageContext.popBody();%>上面时code.jsp另一页面只写一句话就能看到图片:jsp">因为code.jsp可以向某个jsp页面输送一个图片 , 当然是验证码图片~ 。
- 多好的英语怎么写
- 人民币大写的千怎么写
- 笑傲江湖里左冷禅是怎么死的?左冷禅的结局
- 准是怎么写的
- 英文美金大写怎么写
- 小篆声字怎么写
- ps怎么一键抠图 ps怎么一键选择多个图层
- 苹果手机历史壁纸找回 苹果手机历史壁纸怎么看
- 西凉后主李歆生平简介 西凉后主李歆是怎么死的
- word段落参差不齐怎么办 word段落参差不齐怎么办