- 浏览: 22245 次
- 性别:
- 来自: 济南
最新评论
image.jsp页面
login.jsp页面
doLogin.jsp页面
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" pageEncoding="utf-8"%> <%! 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); } %> <% //设置页面不缓存 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); // 获取图形上下文 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(new Color()); //g.drawRect(0,0,width-1,height-1); // 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到 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); } // 取随机产生的认证码(4位数字) //String rand = request.getParameter("rand"); //rand = rand.substring(0,rand.indexOf(".")); 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 session.setAttribute("rand",sRand); // 图象生效 g.dispose(); // 输出图象到页面 ImageIO.write(image, "JPEG", response.getOutputStream()); out.clear(); out = pageContext.pushBody(); %>
login.jsp页面
<form action="doLogin.jsp" method="post"> 用户名:<input type="text" name="username"/><br> 密码:<input type="password" name="password"/><br> 验证码:<input type="text" name="pass"/><img src= "image.jsp "> <br/> <input type="submit" value="提交" /> </form>
doLogin.jsp页面
<%@ page language="java" import="java.util.*,com.wang.entity.*,com.wang.biz.*" pageEncoding="utf-8"%> <% request.setCharacterEncoding("utf-8"); String username = request.getParameter("username"); String password = request.getParameter("password"); Users users = new Users(username,password); UsersBiz usersBiz = new UsersBizImpl(); Users t_user = usersBiz.CheckUser(users); String pass = request.getParameter("pass"); String rand = session.getAttribute("rand").toString(); if(!pass.equals(rand)){ request.setAttribute("err","验证码错误"); request.getRequestDispatcher("login.jsp").forward(request,response); } else if(t_user == null){ request.setAttribute("err","用户名错误"); request.getRequestDispatcher("login.jsp").forward(request,response); } else if(!t_user.getPassword().equals(password)){ request.setAttribute("err","密码错误"); request.getRequestDispatcher("login.jsp").forward(request,response); } else{ session.setAttribute("user",t_user); response.sendRedirect("/message/listMsg.jsp"); } %>
发表评论
-
关于Map常用的方法
2014-02-25 09:25 7611 将Map转换成List // key list List ... -
Effictive Java 读书笔记
2013-10-11 13:51 746Effictive Java 1 考虑用静 ... -
eclipseSSH整合
2013-02-25 16:16 6451 Exception loading sessions fr ... -
简单java ibatis
2012-12-24 13:50 0ibatis小巧,易上手,适合于小型项目开发。 其中对于引用的 ... -
自己做的Ajax小练习
2012-11-13 08:42 6451 关于Ajax三个方法的固定写法 <scri ... -
自己做的web练习
2012-11-12 19:54 590参见附件:service 与client -
struts2小知识点
2012-11-01 10:19 6611 默认的命名空间“ namespace="&qu ... -
2012-10-11 Hibernate杂碎
2012-10-11 18:35 5681 从Hibernate的参考手册中,我们基本可以总结出这样几 ... -
Hibernate BaseDao
2012-10-09 17:16 0package net.comtops.dao.impl; ... -
Hibernate 实现增删改
2012-10-09 16:53 685Configuration conf = null; S ... -
Hibernate 主键生成策略
2012-10-09 16:14 579此处我们只针对常用的数据库类型进行说明,其他的略过: 1 Or ... -
SQL SERVER分页
2012-09-27 09:51 659分页方案一:(利用Not In和SELECT TOP分页) ... -
JDBC数据库连接
2012-09-10 16:11 507MySQL: String Driver="com ... -
oracle分页以及rownum、rowid的使用
2012-09-09 14:13 707分页存储过程: 1.根据ROWID来分,执行时间0.03秒 c ... -
oracle自增序列
2012-09-08 17:52 530创建自增序列 CREATE SEQUENCE SEQn ... -
ObjectOutputStream
2012-08-02 11:05 912要根据用户选择,向一个文件写一个类(Student)的实例,使 ... -
java
2012-07-30 14:45 359- 第一种情况: Comparator cmp = Col ... -
初始化块和构造器
2012-07-24 08:31 5891,构造器的语法格式 修饰符:public private,p ... -
黑马程序员:学习笔记第一天
2012-03-26 21:28 521android培训、java培训、期待与您交流! ------ ...
相关推荐
jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码
jsp 动态 验证码 动态验证码 jsp 动态 验证码 动态验证码
JSP数字+字母验证码
JSP实现的图片验证码, 验证码JSP实现 .
JSP 验证码代码 JSP 验证码代码 JSP 验证码代码 JSP 验证码代码 JSP 验证码代码 JSP 验证码代码 JSP 验证码代码 JSP 验证码代码
jsp验证码,jsp中文验证码,数字验证码,汉字验证码
基于JSP写的验证码代码,内附有ppt,仅供大家参考。 基于JSP写的验证码代码,内附有ppt,仅供大家参考。 基于JSP写的验证码代码,内附有ppt,仅供大家参考。 基于JSP写的验证码代码,内附有ppt,仅供大家参考。
jsp 数字验证码,一个不错色数字验证码
jsp中文验证码,能实现中文字的验证码,非常不错。
请按文档要求建立3个jsp页面,一个是image.jsp就是产生验证码的,一个a.jsp就是用来展示验证码的一个表单,一个check.jsp就是用来验证验证码和表单里面用户输入的验证码的值是否一致。 注意:三个jsp文件的路径,a....
JSP自动生成彩色验证码-由2个JSP页面与一个action验证验证码的类构成,code.jsp自动生成4位彩色随机码。index.jsp是登陆页面包含彩色验证码
JSP数字验证码 JSP数字验证码 JSP数字验证码 JSP数字验证码 JSP数字验证码
jsp登入界面添加验证码
在jsp页面登陆时,有验证码功能会更加安全,这些资料能教你如何在jsp页面中实现验证码功能,
JSP登陆页面实现验证码登陆的代码 JSP登陆页面实现验证码登陆的代码
JSP 验证码 字母 数字JSP 验证码 字母 数字JSP 验证码 字母 数字JSP 验证码 字母 数字JSP 验证码 字母 数字
jsp实现的简单验证码
在JSP页面中产生随机验证码的小例子 在JSP页面中产生随机验证码的小例子
jsp,servlet,验证码,验证码点击更换;jsp,servlet,验证码,验证码点击更换;jsp,servlet,验证码,验证码点击更换;jsp,servlet,验证码,验证码点击更换
jsp生成动态验证码,jsp生成动态验证码。