添加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的支持。
