8. 如何用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 另一页面只写一句话就能看到图片: 因为code.jsp可以向某个jsp页面输送一个图片 , 当然是验证码图片~ 。
文章插图
- 多好的英语怎么写
- 人民币大写的千怎么写
- 笑傲江湖里左冷禅是怎么死的?左冷禅的结局
- 准是怎么写的
- 英文美金大写怎么写
- 小篆声字怎么写
- ps怎么一键抠图 ps怎么一键选择多个图层
- 苹果手机历史壁纸找回 苹果手机历史壁纸怎么看
- 西凉后主李歆生平简介 西凉后主李歆是怎么死的
- word段落参差不齐怎么办 word段落参差不齐怎么办