添加JSP验证码实现登录功能
来源:爱站网时间:2020-08-27编辑:网友分享
在表单设计中,添加验证码可以准确地实现是否是“人”操作,添加验证码可以防止网站数据库信息杂乱无章,下面就由爱站技术频道小编和大家一起看一看添加JSP验证码实现登录功能吧!
在表单设计中,添加验证码可以准确地实现是否是“人”操作,添加验证码可以防止网站数据库信息杂乱无章,下面就由爱站技术频道小编和大家一起看一看添加JSP验证码实现登录功能吧!
jsp登陆验证,网页登陆验证带验证码校验,登录功能之添加验证码
part_1:专门用于生成一个验证码图片的类:VerificationCode.Java
package cn.mike.javase.test; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Random; import javax.imageio.ImageIO; import org.junit.Test; /** * @author : Administrator * @function : 这是用来测试随机生成验证码图片的类; */ public class VerificationCode { /** * 单元测试,试一下能不能自动生成验证码图片 */ // 这个函数是单元测试时使用的,这里private一下外面就调用不到了; /* @Test */ /* public */private void test_fun() { VerificationCode vc = new VerificationCode(); BufferedImage image = vc.getImage(); try { // 生成验证码图片,并保存到指定的路径 VerificationCode.output(image, new FileOutputStream(new File( ".\\image\\vcode_2.jpg"))); } catch (FileNotFoundException e) { e.printStackTrace(); } // 将随机生成的文本内容输出到控制台,用于校验 System.out.println(vc.getText()); } private int w = 70;// 宽 private int h = 35;// 高 private String text;// 文本内容(验证码字符串) private Random r = new Random(); private String[] fontNames = { "宋体", "华文楷体", "黑体", "微软雅黑", "楷体_GB2312" }; // 随机字符集合中不包括0和o,O,1和l,因为这些不易区分 private String codes = "23456789abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYXZ"; // 验证码图片的背景色:白色 private Color bgColor = new Color(255, 255, 255); /** * 返回一个验证码图片buffer对象:BufferedImage */ public BufferedImage getImage() { BufferedImage image = createImage(); // 获取绘图环境(画笔工具) Graphics2D g2 = (Graphics2D) image.getGraphics(); // sb : 用来保存验证码字符串文本内容 StringBuilder sb = new StringBuilder(); for (int i = 0; i
part_2:登录界面:Login.jsp
My JSP 'Login.jsp' starting page 0)) { for (Cookie c : cookies) { if ("admin".equals(c.getValue())) { username = "admin"; break; } } }//end if-condition %>请登录:
part_3:处理登录校验的servlet :LoginVerificationServlet.java
package cn.mike.servlet.test_1212; import java.awt.image.BufferedImage; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.mike.javase.test.VerificationCode; public class GetVerificationCodeServlet extends HttpServlet { private static final long serialVersionUID = -3520994675366100452L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1.新建一个VerificationCode类; VerificationCode vc = new VerificationCode(); // 2.从VerificationCode类中获取BufferedImage对象; BufferedImage bufImage = vc.getImage(); // 3.同时获取验证码中的文本内容,并放到session域中, 用于校验; String code_text = vc.getText(); request.getSession().setAttribute("code_text", code_text); // 4.将生成的图片输出到客户端浏览器 VerificationCode.output(bufImage, response.getOutputStream()); }// end method-doGet public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // do same as GET-method : doGet(request, response); }// end method-doPost }
part_4:成功登陆后的提示界面1:success-page-1.jsp
part_5:成功登陆后的提示界面1:success-page-2.jsp
My JSP 'success-page-2.jsp' starting page
好,能来到页面2真不简单.
估计大家通过爱站技术频道小编介绍的添加JSP验证码实现登录功能,已经了解了相关资讯,项目方面的知识我们一定要加强,感谢大家对js.aizhan.com的支持。