ssh框架 验证码实现
按流程上代码:
jsp:
1 <tr> 2 <td height="40" align="right">验证码:</td> 3 <td><input type="text" name="codenames" id="code" class="cinput"> 4 <img src="showshouye" style="margin-top: -25px;margin-left: 70;"> 5 </td>
src里面的是action,因为这验证码生成是在这个action的execute方法中,所以只用写action的名字就好。
struts.xml:
java:
public String execute() throws Exception { response.setContentType("image/jpeg"); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); HttpSession session = request.getSession(); // 在内存中创建图象 int width = 70, height = 23; 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, 24)); // 画边框 g.setColor(getRandColor(160, 200)); 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 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 + 14, 20); } // 将认证码存入SESSION session.setAttribute("verifyCode", sRand); // 图象生效 g.dispose(); // 输出图象到页面 ImageIO.write(image, "JPEG", response.getOutputStream()); return null; } private 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); }
直接复制代码没有问题,
session.setAttribute("verifyCode", sRand); java代码中的这句是认证码的值,用来验证输入的验证码是否正确的。
完结撒花!!
转载于:https://www.cnblogs.com/xiechenboblog/p/8405900.html
ssh框架 验证码实现相关推荐
- SSH框架电子商城-系统技术分析
------·今天距2020年62天·------ 这是ITester软件测试小栈第71次推文 大家好 我是coco小锦鲤 双十一还有半把个月才到 淘宝京东唯品会 天猫苏宁当当网 都在放大招让我们买买 ...
- 基于Java(SSH 框架)+MySQL 实现的物流配送管理系统【100010488】
基于 Java 中 SSH 框架的物流配送管理系统 项目各文件介绍 Logistics_Manage_System 项目主文件,也就是该项目你需要导入运行的文件 hibernate_mapping 这 ...
- 基于php鞋城的开发,基于SSH框架技术的B2C网上鞋城的设计和实现(MySQL)(精品)★
基于SSH框架技术的B2C网上鞋城的设计和实现(MySQL)(精品)★(毕业论文17600字,外文翻译,程序代码,MySQL数据库,答辩PPT) 近年来,电子商务行业发展迅速,各种网购网站不断出现,网 ...
- ssh框架的信阳市南湾湖旅游网站的设计与开发源码+论文第三稿+ppt+代码讲解视频+安装视频+中期检查表(包安装部署,已降重
项目名称 ssh框架的信阳市南湾湖旅游网站的设计与开发源码 下载地址 ssh框架的信阳市南湾湖旅游网站的设计与开发源码 系统说明 根据需求来分析功能模块,进一步明确所需要完成的功能明细点模块,然后连成 ...
- 基于遗传算法的高校自动排课管理系统java+ssh框架
博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 基于遗传算法的高校自动排课管理系统java+ssh框架 系统说明 <基于遗传 ...
- [转载]SSH框架搭建详细图文教程
什么是SSH? SSH对应 struts spring hibernatestruts 采用MVC模式,主要是作用于用户交互spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合hiber ...
- Linux下使用ssh动态验证码登陆机器
ssh动态验证码登录机器 Google Authenticator是一个动态验证码程序,兼容各种智能手机平板设备,可以用来做各种帐号的二次验证,增加帐号的安全性.SSH是Linux系统的最重要防线之一 ...
- ssh框架实现数据库_自顶向下介绍SSH及其如何实现安全的数据共享
ssh框架实现数据库 by Sam Ollason 通过萨姆·奥拉森(Sam Ollason) This article will take a high-level and top-down app ...
- 使用SSH框架实现用户登录验证
今天,写一个非常简单的通过struts+hibernate+spring的集成来实现用户登录验证的例子,让大家了解一下三者是如何是整合的. 我们可以通过myeclipse的向导,生成相应的环境搭建,如 ...
最新文章
- ViewPager动态添加、删除Fragment,且提供红色小圆球指示当前位置
- ORACLE导入Excel数据
- Linux的SSH登录超时自动断开连接设置
- 【Java从0到架构师(3),【好文推荐
- jinja2 {{}} href 双大括号
- jspServlet(2)
- php提交注册表单,php用户注册表单验证
- cloud 异步远程调用_异步远程工作的意外好处-以及如何拥抱它们
- mysql 拒绝访问的解决办法
- 上海智能网联汽车规模化示范应用启动 滴滴上线自动驾驶服务
- Jquery获取web窗体关闭事件,排除刷新页面
- 【语言环境】WAMP环境部署及优化—以win2008R2SP1为操作系统
- git commit --amend如何合并多个commitId
- 中继器系列:中继器增删改查
- TypeScript学习-类class
- Java 实例 - 字符串分割和字符串分隔
- 江西计算机一级b考试,江西省计算机B一级考试试题.doc
- 数学考140,英语考70的感悟----《超级考验经验〉转贴
- 22.1.4猫和老鼠
- 基于汇编和C语言STM32流水灯依次闪烁