- 浏览: 23817 次
- 性别:
- 来自: 济南
最新评论
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 8231 将Map转换成List // key list List ... -
Effictive Java 读书笔记
2013-10-11 13:51 786Effictive Java 1 考虑用静 ... -
eclipseSSH整合
2013-02-25 16:16 7111 Exception loading sessions fr ... -
简单java ibatis
2012-12-24 13:50 0ibatis小巧,易上手,适合于小型项目开发。 其中对于引用的 ... -
自己做的Ajax小练习
2012-11-13 08:42 6951 关于Ajax三个方法的固定写法 <scri ... -
自己做的web练习
2012-11-12 19:54 677参见附件:service 与client -
struts2小知识点
2012-11-01 10:19 7061 默认的命名空间“ namespace="&qu ... -
2012-10-11 Hibernate杂碎
2012-10-11 18:35 6281 从Hibernate的参考手册中,我们基本可以总结出这样几 ... -
Hibernate BaseDao
2012-10-09 17:16 0package net.comtops.dao.impl; ... -
Hibernate 实现增删改
2012-10-09 16:53 730Configuration conf = null; S ... -
Hibernate 主键生成策略
2012-10-09 16:14 628此处我们只针对常用的数据库类型进行说明,其他的略过: 1 Or ... -
SQL SERVER分页
2012-09-27 09:51 710分页方案一:(利用Not In和SELECT TOP分页) ... -
JDBC数据库连接
2012-09-10 16:11 548MySQL: String Driver="com ... -
oracle分页以及rownum、rowid的使用
2012-09-09 14:13 756分页存储过程: 1.根据ROWID来分,执行时间0.03秒 c ... -
oracle自增序列
2012-09-08 17:52 595创建自增序列 CREATE SEQUENCE SEQn ... -
ObjectOutputStream
2012-08-02 11:05 943要根据用户选择,向一个文件写一个类(Student)的实例,使 ... -
java
2012-07-30 14:45 412- 第一种情况: Comparator cmp = Col ... -
初始化块和构造器
2012-07-24 08:31 6351,构造器的语法格式 修饰符:public private,p ... -
黑马程序员:学习笔记第一天
2012-03-26 21:28 573android培训、java培训、期待与您交流! ------ ...
相关推荐
下面将详细介绍JSP验证码的实现原理、步骤以及相关的知识点。 **验证码的基本原理** 验证码的核心是生成一串随机字符串,然后将其展示给用户,用户输入看到的字符串,服务器端验证输入是否正确。验证码设计的目标...
jsp 动态 验证码 动态验证码 jsp 动态 验证码 动态验证码
综上所述,`jsp写的一个随机验证码`这个主题涵盖了JSP、Servlet、验证码机制以及Web应用的基本架构和异常处理原则。实际开发中,为了代码的可维护性和安全性,推荐将验证码生成逻辑封装到Servlet中,JSP仅作为视图层...
为了验证用户输入的验证码是否正确,我们需要将生成的验证码值存储在一个地方,通常是JSP的会话(`HttpSession`)。这样,当用户提交验证码时,我们可以比较其输入值与会话中的值是否匹配。 5. **客户端交互**: ...
首先创建一个`BufferedImage`对象,设置图像尺寸和颜色。 - 使用`Graphics2D`对象在图像上绘制随机字符串,可以通过改变字体、颜色、角度等方式增加干扰,使自动化程序更难识别。 - 添加随机的线条、点等元素以...
总结一下,创建一个JSP数字加字母验证码涉及以下几个步骤: 1. 使用Java生成随机的数字和字母组合。 2. 通过Servlet或JavaBean生成验证码图像,包括设置颜色、字体、噪声和扭曲等效果。 3. 在JSP页面中显示验证码...
jsp验证码,jsp中文验证码,数字验证码,汉字验证码
在JSP页面中,我们可以创建一个`<img>`标签,其`src`属性指向一个Servlet,该Servlet负责生成并返回验证码图像。 5. **处理登录请求**:在登录表单提交时,服务器端需要检查用户输入的验证码是否与之前保存在会话中...
3. 验证码验证机制:使用 JSP 实现验证码验证机制,检测用户输入的验证码是否正确。 * 使用 JSP 获取 SESSION 中的验证码,并与用户输入的验证码进行比较。 * 如果验证码不正确,使用 JavaScript 弹出警告框,...
jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码
在这个实例中,我们将利用JSP创建一个用户登录页面,同时实现验证码验证功能,以增加安全性。 验证码验证通常用于防止自动化程序(如机器人)进行恶意操作,例如重复登录尝试或垃圾邮件发送。验证码通过显示一组...
**JSP图形验证码项目**是基于Java Web技术实现的一个安全登录功能模块,主要涉及的技术包括JSP(JavaServer Pages)和图形验证码。在这个项目中,我们重点探讨如何使用JSP来创建用户登录界面,并结合图形验证码来...
本项目重点在于使用JSP(Java Server Pages)技术自动生成彩色验证码,为用户提供一个视觉上更友好的验证体验。下面我们将深入探讨这个主题。 首先,验证码通常由一组随机字符组成,这些字符可以是数字、字母或其他...
jsp中文验证码,能实现中文字的验证码,非常不错。
在网页登录过程中,验证码是一种常见的安全机制,...当然,这只是一个基础示例,实际项目中可能需要考虑更多的安全因素,如防止跨站请求伪造(CSRF)攻击,或者使用更复杂的验证码技术,如滑动验证码、拼图验证码等。
- 在JSP页面中,我们可以创建一个`<img>`标签,其`src`属性指向一个处理验证码生成的Servlet或JSP页面(如`rand.jsp`)。 - `rand.jsp`接收到请求后,生成验证码字符串,并将其存入session,同时将其转换为图像...
在这个"JSP+servlet验证码登陆"的场景中,我们主要讨论的是如何在MVC(Model-View-Controller)架构下实现一个安全的登录系统,特别是涉及到验证码的生成和验证。 验证码是一种防止恶意自动程序(如机器人)进行...
JSP登陆页面实现验证码登陆的代码 JSP登陆页面实现验证码登陆的代码
描述中提到的“博文链接”指向了一个可能包含详细步骤的博客文章,但因为这里没有实际链接内容,我们将基于常见的验证码生成方法进行讲解。 生成中文验证码主要涉及以下几个步骤: 1. **生成随机中文字符**:Java...
- 一个JSP文件(例如:`captcha.jsp`),负责生成和输出验证码图片流。 - 可能有一个辅助的Java类(如`CaptchaGenerator.java`),包含了生成随机字符串和绘制图像的逻辑。 - 配合使用的session管理,用于存储和比较...