- 浏览: 214842 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (397)
- j2se (28)
- nio (3)
- 易错点 (3)
- 面试ssh (9)
- ssh整合 (11)
- jbpm+spring (2)
- js (15)
- 高级技术 (59)
- swing (3)
- 数据库 (16)
- hibernate (18)
- spring (19)
- 开发网站知识点 (9)
- jbpm (4)
- json (5)
- 设计模式 (22)
- 自定义标签 (1)
- j2ee (9)
- lucene (3)
- cahce (11)
- maven (5)
- html5 (1)
- 多数据源 (10)
- 页面聊天 (9)
- 富客户端 (1)
- android (13)
- aop+拦截器+jms (13)
- 框架整合 (1)
- 非阻塞io (24)
- 暂时不看 (13)
- webservice (3)
- oracle (3)
- 算法 (4)
- 协程 (2)
- netty (1)
- 爬虫 (0)
- 高级基础 (1)
- JVM调优总结 (12)
- 知识点技巧 (1)
- REST (0)
- 基础 io (2)
- dubbo (8)
- 线程 (1)
- spring源码 (2)
- git (1)
- office (2)
最新评论
-
sjzcmlt:
,写的挺好的啊
一个完整的负载均衡的例子 . -
他大姨妈:
网上大部分例子都是直接通过IdleStateHandler来实 ...
Netty的超时机制 心跳机制
前台
action
后台
<script type="text/javascript"> window.onload=function(){ var verifyObj = document.getElementById("Verify"); verifyObj.src="securityCodeImage.action?timestamp="+new Date().getTime(); verifyObj.onclick=function(){ this.src="securityCodeImage.action?timestamp="+new Date().getTime(); }; } </script> <body> ${Message } <form action="login" method="post"> 用户名<input type="text" name="user.username" /><br /> 密码<input type="password" name="user.password" /><br /> 检验码<input type="text" name="securityCode" /><br /> <img id="Verify" style="cursor: hand;" alt="看不清,换一张" /><br /> <input type="submit" name="submit" value="登录" /> </form> </body> </html>
action
<action name="securityCodeImage" class="securityCodeImageAction" method="securityCodeImage"> <result name="success" type="stream"> <param name="contentType">image/jpeg</param> <param name="inputName">imageStream</param> <param name="bufferSize">2048</param> </result> </action>
后台
/** * 提供图片验证码 * */ @SuppressWarnings("serial") @Component("securityCodeImageAction") @Scope("prototype") public class SecurityCodeImageAction extends ActionSupport { // 图片流 private ByteArrayInputStream imageStream; public ByteArrayInputStream getImageStream() { return imageStream; } public void setImageStream(ByteArrayInputStream imageStream) { this.imageStream = imageStream; } public String securityCodeImage() throws Exception { String securityCode = getSecurityCode(); imageStream=getImageAsInputStream(securityCode); // 放入session中 ActionContext actionContext = ActionContext.getContext(); Map session=actionContext.getSession(); session.put("SESSION_SECURITY_CODE", securityCode); return SUCCESS; } private String getSecurityCode() { // 字符集合(除去易混淆的数字0、数字1、字母l、字母o、字母O) char[] codes = { '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; StringBuffer securityCode =new StringBuffer(); for (int i = 0; i < 4; i++) { int r = (int) (Math.random() * codes.length); securityCode =securityCode.append(codes[r]) ; } return securityCode.toString(); } private ByteArrayInputStream getImageAsInputStream(String securityCode) throws Exception { //图片 BufferedImage image=new BufferedImage(70, 20, BufferedImage.TYPE_INT_RGB); Graphics g=image.createGraphics(); g.setColor(Color.LIGHT_GRAY);//设置边框颜色 //设置字体颜色和样式 g.setColor(new Color(19,148,246)); for(int i = 0; i < 4;i++){ g.drawString(String.valueOf(securityCode.charAt(i)), i * 15 + 5, 15); } //关闭资源 g.dispose(); ByteArrayInputStream inputStream = null; ByteArrayOutputStream bos = new ByteArrayOutputStream(); JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(bos); jpeg.encode(image); byte[] bts = bos.toByteArray(); inputStream = new ByteArrayInputStream(bts); return inputStream; } }
发表评论
-
几种JAVA加密算法
2014-11-07 10:43 3461. MD5加密,常用于加密用户名密码,当用户验证时。 ... -
大型互联网架构概述
2014-10-30 15:44 0大型互联网架构 解决问题的通用思路是将分而治之(divid ... -
java RSA 不对称加密密钥生成、加密解密实例
2014-10-29 16:31 0package cn.steven.security; ... -
计算机科学中最重要的32个算法
2014-10-29 16:27 0奥地利符号计算研究所 ... -
程序员技术练级攻略
2014-10-29 16:25 0月光博客6月12日发表了 ... -
高性能Web应用打造攻略:扩展过程中20个最大的绊脚石
2014-10-29 16:21 0Sean Hull是Heavyweight Internet ... -
积少成多:十大高效原型设计工具
2014-10-29 16:19 0积少成多:十大高效 ... -
网站开发人员应该知道的62件事
2014-10-29 16:11 0有人在Stack Overflow 上发问,动手开发网站之 ... -
Java 写注册表
2014-10-29 15:28 0这里介绍的是利用registry向windows系统写注册 ... -
根据表信息生成JavaVO
2014-10-29 15:21 656package com.ustcsoft.util; ... -
利用soupUI3.5测试JMS消息
2014-10-29 15:19 497利用soupUI3.5测试JMS消息 1.安装要求 ... -
java调用shell
2014-10-29 15:18 565在写程序时,有时需要在java程序中调用shell脚本,可以 ... -
IP地址查询接口收集
2014-10-29 15:16 466新浪 IP 地址查询接口:http://counter.si ... -
windows查杀进程端口
2014-10-26 19:53 510Windows下查看进程及结束进程命令 1)查看占用808 ... -
首页静态化数据示例
2014-10-20 17:28 1248之前首页的数据都是动态加载的,后来发现效率问题就改进了些。 ... -
ssh测试
2014-06-19 12:53 410spring 测试 @Test public void ...
相关推荐
在本文中,我们将深入探讨如何使用Struts实现用户登录功能。 首先,了解Struts的基础架构至关重要。Struts遵循Model-View-Controller(MVC)设计模式,将业务逻辑、数据展示和用户交互分离,提高了代码的可维护性和...
Struts 2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它简化了构建可维护和可扩展的Web应用的过程。...实践是检验理论的最好方式,动手尝试这个示例,你将对Struts 2有更直观的理解。
用struts2做一个自定义密码检验器,密码既要包括数字又要包括字母。自定义校验器的使用方法和预定义校验器的使用方法相同
3. **创建登录Action**:在Struts2中编写一个处理用户登录请求的Action,调用Shiro的Subject.login()方法进行登录操作。 4. **集成拦截器**:使用Struts2的拦截器机制,添加Shiro的`authc`拦截器,该拦截器会在每个...
Struts2是一个非常流行的Java Web开发框架,它简化了MVC(模型-视图-控制器)架构的实现,使得开发者可以更高效地构建动态...记住,实践是检验真理的唯一标准,动手尝试这个小例子,将有助于更好地理解和掌握这些概念。
在Struts2开发环境搭建完毕之后,接下来可以通过实现一个简单的登录页面来检验搭建是否成功。 #### 1. 修改Index.jsp 首先修改Web项目的首页index.jsp,实现一个基本的登录界面。在该页面中包含输入用户名和密码的...
Action执行完成后,会返回一个结果码,这个结果码与视图页面关联,从而决定展示哪个页面。Struts2的标签库,如`s:form`、`s:textfield`等,使得在JSP页面中处理数据更加方便。 部署Struts2应用通常包括以下几个步骤...
9. **javassist.jar**:Javassist是一个字节码操作库,Struts 2使用它来实现运行时的类增强,提高性能。 10. **其他依赖的库**:如servlet-api、commons-fileupload、commons-lang等,这些是Struts 2正常运行所必需...
Struts2的检验证框架基于Apache Commons BeanUtils和Validator API,提供了灵活的数据验证机制。它允许开发者定义验证规则,并在用户提交表单时自动执行这些规则,从而提高应用的安全性和用户体验。 2. **验证配置...
(1):对用户名的检验规则是用户名不能为空,且只能是字母,数字,长度为4到25之间。 (2):对密码校验的规则是用户不能为空,且只能是数字,长度为8到20之间。 (3):年龄的校验规则是必须是整数,且在1到120...
- 整合使用:这三者结合,形成SSH(Struts+Spring+Hibernate)架构,高效地处理用户登录、注册等业务,提供数据持久化和事务管理。 通过学习这些范例,你可以了解如何在实际项目中应用SSH进行安全登录,以及如何...
Struts验证框架,作为Struts框架的一个重要组成部分,主要用于对用户输入的数据进行合法性检查,确保数据符合预期的格式和约束条件。这一机制不仅提升了应用程序的健壮性,还增强了用户体验,避免了因非法数据导致的...
【SSI电子书】集合了三个重要的Java Web框架的开发指南,包括`Struts2`、`iBatis`和`Spring`。这些框架是企业级应用程序开发中的关键组件,广泛用于构建高效、可扩展和模块化的后端系统。以下是关于这三个框架的详细...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络环境中提供安全的远程登录和其他网络服务。SSH框架通常指的是Struts、Spring和Hibernate的集成,这是一个经典的Java Web开发架构,用于构建高效、灵活且可...
【在线图书网站的构建】是计算机科学与技术专业的一次实验项目,旨在通过使用JSP、Servlet、JDBC...实验报告的撰写和评估,也是对学生综合能力的一种检验,包括遵守规则、上机表现、程序设计能力和课题功能实现情况等。
数据检验。数据的存储和持久化由HIENATER持久层实现,数据库采用MYSQL,数据源采用数 据源连接池机制,整个系统完全贯穿JAVA面向对象的概念,全面完整地实现了JAVA的封装性 ,继承性,多态性的三大特征,完全按照J2EE...
数据检验。数据的存储和持久化由HIENATER持久层实现,数据库采用MYSQL,数据源采用数 据源连接池机制,整个系统完全贯穿JAVA面向对象的概念,全面完整地实现了JAVA的封装性 ,继承性,多态性的三大特征,完全按照J2EE...
5. **监听状态变化**:通过onreadystatechange事件监听请求的状态,当状态变为4(表示请求已完成)且状态码为200(表示成功)时,说明请求完成。 6. **处理响应**:使用responseText或responseXML属性获取服务器返回...
8. **毕业设计**:此项目可能是一个学生的毕业设计作品,通常会涵盖课程中学到的核心概念和技术,如数据库设计、前端页面布局、后端逻辑处理等,是对学习成果的实际检验。 9. **系统架构**:考虑到Java项目的特性,...