1. JSP实现验证码 代码怎么写
一个小示例看一下。
验证码 code2.jsp <%@ page language="java" import="java.util.*,java.awt.*,java.awt.image.*,javax.imageio.*" pageEncoding="gb2312"%> <%try{ response.setHeader("Pragma","no-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires",0); response.setContentType("image/jpeg"); int width = 80; int height = 20; char mapTable[] = {'0','1', '2', '3', '4', '5', '6', '7', '8', '9'}; BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); // 获取图形上下文 Graphics g = image.getGraphics(); // 设定背景颜色 g.setColor(new Color(0xDCDCDC)); g.fillRect(0, 0, width, height); //画边框 g.setColor(Color.black); g.drawRect(0, 0, width - 1, height - 1); // 随机产生的验证码 String strEnsure = ""; // 4代表4位验证码,如果要生成等多位的验证码 ,则加大数值 for (int i = 0; i < 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里 验证 看不清,换一张。
2. 在java页面上,用jsp,怎样写一个验证码
//验证码生成页面<%@ page language="java" import="java.util.*" pageEncoding="GBK"%><%@ page import = " java.awt.*,java.awt.image.*,javax.imageio.* " %> <%@ page import = " java.io.OutputStream " %> <%! 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);}%> <% try {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);OutputStream os = response.getOutputStream();Graphics g = image.getGraphics();Random random = new Random();g.setColor(getRandColor( 200 , 250 ));g.fillRect( 0 , 0 , width, height);g.setFont( new Font( " Times New Roman " ,Font.PLAIN, 18 ));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);}String sRand = "" ;for ( int i = 0 ;i < 4 ;i ++ ){String rand = String.valueOf(random.nextInt( 10 ));sRand += rand;g.setColor( new Color( 20 + random.nextInt( 110 ), 20 + random.nextInt( 110 ), 20 + random.nextInt( 110 )));g.drawString(rand, 13 * i + 6 , 16 );}session.setAttribute("vcode" ,sRand);g.dispose();ImageIO.write(image, "jpg" ,os);os.flush();os.close();os = null ;response.flushBuffer();out.clear();out = pageContext.pushBody();}catch (IllegalStateException e){System.out.println(e.getMessage());e.printStackTrace();} %>//验证码使用页面<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
3. Jsp验证码怎么写
4. jsp中显示验证码的代码怎么写
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.Random; import javax.imageio.ImageIO;/*生成验证码图片*/ public class MakeCertPic { //验证码图片中可以出现的字符集,可以根据需要修改 private char mapTable[]={ 'a','b','c','d','e','f', 'g','h','i','j','k','l', 'm','n','o','p','q','r', 's','t','u','v','w','x', 'y','z','0','1','2','3', '4','5','6','7','8','9' };/* 功能:生成彩色验证码图片 参数wedth为生成图片的宽度,参数height为生成图片的高度,参数os为页面的输出流*/ public String getCertPic(int width,int height,OutputStream os){ if(width<=0) width=60; if(height<=0) height=20; BufferedImage image= new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); //获取图形上下文 Graphics g = image.getGraphics(); //设定背景颜色 g.setColor(new Color(0xDCDCDC)); g.fillRect(0,0,width,height); //画边框 g.setColor(Color.black); g.drawRect(0,0,width-1,height-1); //随机产生的验证码 String strEnsure = ""; //4代表4为验证码,如果要产生更多位的验证码,则加大数值 for(int i = 0;i<4;++i){ strEnsure += mapTable[(int) (mapTable.length*Math.random())]; } //将认证码显示到图像中,如果要生成更多位的验证码,增加drawString语句 g.setColor(Color.black); 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, 45, 15); //随机产生15个干扰点 Random rand = new Random(); for(int i=0; i<10; i++){ int x = rand.nextInt(width); int y = rand.nextInt(height); g.drawOval(x,y,1,1); } //释放图形上下文 g.dispose(); try{ //输出图形到页面 ImageIO.write(image, "JPEG", os); }catch (IOException e){ return ""; } return strEnsure; } } makeCertPic.jsp页面用于调用生成验证码图片的JavaBean,并在客户端显示,源代码如下:<%@page contentType="image/jpeg" %><%@page language="java" pageEncoding="utf-8"%>
5. JSP实现验证码 代码怎么写
一个小示例看一下。
验证码 code2.jsp <%@ page language="java" import="java.util.*,java.awt.*,java.awt.image.*,javax.imageio.*" pageEncoding="gb2312"%><%try{ response.setHeader("Pragma","no-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires",0); response.setContentType("image/jpeg"); int width = 80; int height = 20; char mapTable[] = {'0','1', '2', '3', '4', '5', '6', '7', '8', '9'}; BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); // 获取图形上下文 Graphics g = image.getGraphics(); // 设定背景颜色 g.setColor(new Color(0xDCDCDC)); g.fillRect(0, 0, width, height); //画边框 g.setColor(Color.black); g.drawRect(0, 0, width - 1, height - 1); // 随机产生的验证码 String strEnsure = ""; // 4代表4位验证码,如果要生成等多位的验证码 ,则加大数值 for (int i = 0; i < 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="checkCode" />
<a href="javascript:;"
onclick="document.getElementById('num').src = '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页面输送一个图片,当然是验证码图片~。
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页面输送一个图片,当然是验证码图片~。