欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

JSP实例-彩色验证码

发布时间:2025/3/15 javascript 56 豆豆
生活随笔 收集整理的这篇文章主要介绍了 JSP实例-彩色验证码 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

image.java用于产生彩色验证码,其代码如下:

package test; 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 Image {//验证码图片中可以出现的字符集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'};//生成彩色的验证码图片。width表示图片宽度;height表示图片高度。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_BGR);//获取图形上下文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位认证码for(int i=0;i<4;i++){strEnsure+=mapTable[(int)(mapTable.length*Math.random())];}//将认证码显示到图像中g.setColor(Color.black);g.setFont(new Font("Atlantic Inine",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);//随机产生10个干扰点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; } }


index.jsp展示登录主界面,其代码如下:

<html> <body> <form action="check.jsp" method="post"> 用户名:<input type="text" name="username"/> <br> 密  码<input type="password" name="password"> <br> 验证码:<input type="text" name="certCode"/> <%-- 调用image.jsp显示验证码图片--%> <img src="image.jsp"> <br> <input type="submit" value="确定"/> </form> </body> </html>
image.jsp负责调用JavaBean显示验证码图片,以及将得到的string形式验证码放入session中。其代码如下:

<jsp:useBean id="image" scope="session" class="test.Image"/> <% //得到生成的验证码,并将验证码以图片方式输出 String str=image.getCertPic(0,0,response.getOutputStream()); //将认证码存入session session.setAttribute("certCode",str);%>
check,jsp负责比对用户输入的验证码和图片显示的验证码是否一致,其代码如下:

<% //得到用户输入的验证码 String certCode=request.getParameter("certCode"); //比对用户输入的验证码和生成的验证码是否相同 if(certCode.equals((String)session.getAttribute("certCode")))out.print("验证码输入正确");elseout.print("验证码输入错误");%>
运行index.jsp进入登陆界面,截图如下:


1.若输入正确的验证码,截图如下:


点击”确定“后跳转到check.jsp页面,显示输入验证码正确:


2.若输入错误的验证码,截图如下:


点击”确定“后跳转到check.jsp页面,显示输入验证码错误:





总结

以上是生活随笔为你收集整理的JSP实例-彩色验证码的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。