JSP+servlet生成验证码并验证
生成验证码的基本过程是:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.awt.*,java.awt.image.BufferedImage,javax.imageio.ImageIO" %><%response.setHeader("Cache-Control", "no-cache");int width=60,height=20;<!--实例化bufferdImage对象-->BufferedImage image=new BufferedImage( width,height,BufferedImage.TYPE_INT_RGB);//由bufferdImage对象获得画笔gGraphics g=image.getGraphics();//画笔填充矩形g.setColor(new Color(200,200,200));g.fillRect(0, 0, width, height);//生成随机数Random rd=new Random();int rdNum=rd.nextInt(8999)+1000;String rdstr=String.valueOf(rdNum);//把随机数放入session中session.setAttribute("rdStr", rdstr);//画笔g画随机数g.setColor(Color.BLUE);g.setFont(new Font("",Font.PLAIN,20));g.drawString(rdstr, 10, 20);//这里的坐标是一个字符的左下角基线 //画100个随机点g.setColor(Color.green);for(int i=0;i<100;i++){int x=rd.nextInt(width);int y=rd.nextInt(height);g.drawOval(x, y, 1, 1);}//用ImageIO的静态函数write输出图像ImageIO.write(image, "JPEG", response.getOutputStream());out.clear();out=pageContext.popBody(); %>
画图的基本思想是:
<!--loginform.jsp登录jsp-->
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"> <title>My JSP 'loginform.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head> <body><script type="text/javascript">function refresh(){ document.loginform.imgcode.src="codes.jsp";}</script> <form name="loginform" action="/code/servlets/codeServlet" method="post"><h4 align="center"><b>欢迎登陆</b></h4><br> <table align="center" border="1"><tr><td align="right">请输入账号:</td><td><input name="zhanghao" type="text" > </td></tr><tr><td align="right">请输入密码:</td><td><input name="mima" type="password" size="21" > </td></tr><tr><td align="right">请输入验证码:</td><td ><input name="yanzhengma" type="text" size="10" ><img name="imgcode" src="codes.jsp" onclick="refresh()"> </td><!--验证码当图片处理,点击可刷新--></tr><tr><td></td><td><input type="submit" value="登录" > <input type="button" value="忘记密码?"></td></tr></table> </form></body>
</html>
<!--codeServlet.java-->
package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class codeServlet extends HttpServlet {/*** The doPost method of the servlet. <br>** This method is called when a form has its tag value method equals to post.* * @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//获取表单的验证码String code=request.getParameter("yanzhengma");//获取session中的验证码HttpSession session=request.getSession();String randstr=(String) session.getAttribute("rdStr");response.setCharacterEncoding("gb2312");//respons设为中文编码PrintWriter out=response.getWriter();//获得输出写出器if(code.equals(randstr)){//输入的验证码和session保存的验证码相比较out.println("恭喜你,验证码正确!"); }else{ //response.sendRedirect("/code/back.jsp");out.println("验证码错误!!");} }
}
输入结果是:
JSP+servlet生成验证码并验证相关推荐
- jsp页面生成验证码且验证
一般先写出验证码,利用java语言写出(后台或者前台写,前台jsp还是用<% %>包java语句写出) 然后登陆页面用img的src引入验证码的方法,比如: <img src=&qu ...
- 转: 通过Servlet生成验证码图片
孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(九)-- 通过Servlet生成验证码图片 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedIma ...
- 基于 JSP + Servlet 的用户登录验证
综合案例--基于 JSP + Servlet 的用户登录验证 [例6-1] 实现一个简单的用户登录验证程序,如果用户名是 abc ,密码是 123,则显示欢迎用户的信息,否则显示"用户名或密 ...
- Java Web学习总结(6)——通过Servlet生成验证码图片
2019独角兽企业重金招聘Python工程师标准>>> 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawIma ...
- javaweb学习总结(九):通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.r ...
- 通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 package gacl.res ...
- 通过Servlet生成验证码图片 (转孤傲苍狼)
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.r ...
- javaweb(九)—— 通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.r ...
- avaweb学习总结(九)—— 通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.r ...
最新文章
- 光流(Optical Flow)简介
- 第一讲,Python的安装(干货)
- 第三次学JAVA再学不好就吃翔(part76)--Collection类
- Android5.1权限问题解决
- 基于Python的SVM算法深入研究
- 消息中间件—RocketMQ的RPC通信(一)
- Python深度学习:常见优化算法
- Python3制作百度文库免费下载器
- voip语音中转服务器,基于VoIP的语音应用服务器的设计与实现
- bmc156 linux驱动源码,BMC156 BOSCH博世 加速+电子罗盘 全新电子罗盘传感器 只做原装...
- 从零开始学51单片机
- c语言 long int最大数,long整型的最大值跟处理器位数有关
- 布莱克曼哈尔窗matlab,基于matlab的布莱克曼窗函数法设计的低通滤波器
- 鉴源丨车载ECU嵌入式设备的诊断测试 - 会话和安全控制
- 域名可以修改绑定的服务器么,域名备案绑定的服务器可以改么
- 2022-2027年中国卫星遥感市场竞争态势及行业投资前景预测报告
- 讨伐Cucumber行为驱动
- 怎么把ogg音乐格式转换成mp3
- 2048小游戏HTML网页版源码共享
- java category类_Category(类别)
热门文章
- misc_register、 register_chrdev 的区别总结
- Windows下使用IDEA+Maven搭建本地Hadoop环境
- C++ Primer 5th笔记(chap 16 模板和泛型编程)转发参数包
- C++ Primer 5th笔记(7)chapter7 类:编译相关
- 软件质量保证与测试——Ad hoc Test
- ATF(TF-A)的编译方法
- 13-SDEI: Software Delegated Exception Interface
- java IO流用法
- JAVA_IO流四大家族(2)
- python实现维吉尼亚加密法