- 浏览: 734023 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
18335864773:
看了楼主写的用jxl生成excel。有地方用到了流,还特别强调 ...
jxl导出excel文件简单示例 -
shaoshou111:
查看Apache的并发请求数及其TCP连接状态netstat ...
Linux查看连接数,并发数 -
gengjunshi:
非常感谢哈,刚好在学webservice编程,很有用呢。
JAX-WS开发webservice示例详解 -
zcgewu:
encrypt2()和encrypt()有什么区别
JAVA实现AES加密 -
java爱好者92:
ireport的操作还是相对比较复杂的,帆软报表会相对简单一点 ...
iReport报表开发中常见的问题
<tr> <td align="right">验证码:</td> <td> <table style="margin:0px" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <input type="text" id="confirmcode" onkeydown="go_der(this);" style="width:40px;" maxlength="4" name="confirmcode" onfocus="document.getElementById('confimg').style.visibility='visible';document.getElementById('reflushid').style.visibility='visible'" /></td> <td valign="bottom" id="confimg" style="padding-left:10px;padding-right:10px;visibility:hidden" align="right"> <script>document.write("<img height='20' style='margin:1px' src='<%=request.getContextPath()%>/servlet/ConfirmCodeImgServlet'>")</script></td> <td align="left" id="reflushid" style="visibility:hidden"> <a href="#" onclick="changeImg()" style="CURSOR: hand;COLOR:Blue; TEXT-DECORATION: none;TEXT-DECORATION: underline">看不清</a></td> </tr> </table> </td> </tr> <tr> <td colspan="2"> <!-- input type="button" style="cursor:hand" class="Btn2" id="login" onclick="check_data()">--> <table align="center"><tr><td> <table border="0" cellpadding="0" cellspacing="0" > <tr> <td > <img src="<%=request.getContextPath()%>/img/spacer.png" width="4" height="22" /></td> <td > <input type="button" id="login" class="Btn2" value="登录" onclick="check_data()"/></td> <td> <img src="<%=request.getContextPath()%>/img/spacer.png" width="4" height="22" /></td> </tr> </table> </td> <td><input type="button" value="取消" class="Btn2" onClick="window.close();"> <!-- img onClick="window.close();" src="<%=request.getContextPath()%>/img/quxiao.jpg" /> --> </td></tr></table></td></tr>
<script type="text/javascript"> function changeImg() { var img = document.getElementById("confimg"); document.getElementById("confirmcode").value=""; img.innerHTML="<img height='20' style='margin:1px' src='<%=request.getContextPath()%>/servlet/ConfirmCodeImgServlet'>"; } function check_data() { /* if(!englishandnumberonly(document.loginForm.username)) { document.loginForm.username.focus(); alert("登录名只能是英文、数字和下划线!"); return false; } */ if(!isnumberonly(document.loginForm.confirmcode)) { document.loginForm.confirmcode.focus(); alert("验证码只能是数字!"); return false; }else{ if(document.loginForm.confirmcode.value.length!=4){ document.loginForm.confirmcode.focus(); alert("验证码必须为四位有效数字!"); return false; } } var username=document.loginForm.username.value; var password=document.loginForm.password.value; var confirmcode=document.loginForm.confirmcode.value; if((username=="")||(password=="")||(confirmcode=="")) { alert("用户名、密码及验证码都不能为空!"); document.loginForm.username.focus(); return false; }else{ if(window.name!="<%=ActionGlobalDefine.mainframe%>"){ window.opener = null; window.open("",'<%=ActionGlobalDefine.mainframe%>','height=730,width=1020,top=0,left=0,toolbar=no,menubar=no,scrollbars=yes, resizable=no,location=no, status=yes'); window.open("<%=request.getContextPath()%>/login.jsp",'_self','height=730,width=1020,top=0,left=0,toolbar=no,menubar=no,scrollbars=yes, resizable=no,location=no, status=yes'); window.close(); } document.loginForm.password.value=hex_md5(password); document.loginForm.submit(); } } </script>
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.lct.trans.dao.MyLog; public class ConfirmCodeImgServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; /** * */ public void init() throws ServletException { System.out .println("***** confirmCodeImageServlet init is ok !!! ******"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { MyLog.getlog().info("**** confirmcodeImage doget "); int iWidth = 55, iHeight = 18; BufferedImage image = new BufferedImage(iWidth, iHeight, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); g.setColor(Color.white); g.fillRect(0, 0, iWidth, iHeight); g.setColor(Color.black); g.drawRect(0, 0, iWidth - 1, iHeight - 1); String rand = new Integer((int) (Math.random() * 10000)).toString(); switch (rand.length()) { case 1: rand = "000" + rand; break; case 2: rand = "00" + rand; break; case 3: rand = "0" + rand; break; default: rand = rand.substring(0, 4); break; } request.getSession().setAttribute("realcode", rand); g.setColor(Color.black); g.setFont(new Font("Times New Roman", Font.PLAIN, 18)); g.drawString(rand, 10, 15); Random random = new Random(); for (int iIndex = 0; iIndex < 88; iIndex++) { int x = random.nextInt(iWidth); int y = random.nextInt(iHeight); g.drawLine(x, y, x, y); } g.dispose(); ImageIO.write(image, "JPEG", response.getOutputStream()); } }
另一种页面验证
在web.xml
<servlet> <description>登陆图片验证</description> <servlet-name>authimg</servlet-name> <servlet-class>com...servlet.AuthImg</servlet-class> </servlet> <servlet-mapping> <servlet-name>authimg</servlet-name> <url-pattern>/authimg.gif</url-pattern> </servlet-mapping>
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import com.sun.image.codec.jpeg.*; import java.awt.*; import java.awt.image.*; import org.apache.commons.lang.*; //import org.springframework.web.context.WebApplicationContext; //import org.springframework.web.context.support.WebApplicationContextUtils; public class AuthImg extends HttpServlet { /** * */ private static final long serialVersionUID = -7099312208878086233L; //private static final String CONTENT_TYPE = "text/html; charset=UTF-8"; private Font mFont = new Font("Times New Roman", Font.BOLD, 20); // Initialize global variables public void init() throws ServletException { } // Process the HTTP Get request public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("image/jpeg"); ServletOutputStream out = response.getOutputStream(); 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(250, 255)); g.fillRect(0, 0, width, height); g.setFont(mFont); g.setColor(getRandColor(240, 250)); 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); } String rand = RandomStringUtils.randomNumeric(4); char c; for (int i = 0; i < 4; i++) { c = rand.charAt(i); g.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110))); // 调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成 g.drawString(String.valueOf(c), 13 * i + 6, 16); } //放入Session,解决Cookie出错的问题 HttpSession seesion = request.getSession(); seesion.setAttribute("authCode", rand); // WebApplicationContext wc = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext()); // SysConfig sysConfig = (SysConfig) wc.getBean("sysConfig"); // UserCookie uc = new UserCookie(request, response, sysConfig); // uc.addAuthCode(rand); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(image); out.close(); } // Process the HTTP Post request public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } // Clean up resources public void destroy() { } 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); } }
<% String path = request.getContextPath(); %> <tr> <td height="24" valign="bottom"><div align="right"><span class="STYLE3">验证码</span></div></td> <td width="10" valign="bottom"> </td> <td width="52" height="24" valign="bottom"><input type="text" name="loginForm.authcode" id="authcode" size="5" maxlength="4" onfocus="javascript:showimage();" style="width:50px; height:17px; background-color:#87adbf; border:solid 1px #153966; font-size:12px; color:#283439; "></td> <td width="62" valign="bottom"><div align="left"><img id="auimg" style="cursor:pointer;display: none" onclick="javascript:loadimage();" width="38" height="17"></div></td> </tr>
function loadimage(){ document.getElementById("auimg").src="<%=path%>/authimg.gif?"+Math.random(); } function showimage(){ var _auimg = document.getElementById("auimg"); if(_auimg.style.display == 'none'){ _auimg.src="<%=path%>/authimg.gif?"+Math.random(); _auimg.style.display = ''; } }
发表评论
-
父页面与子页面的相互调用
2017-12-14 14:51 2573一、在页面里用 open ... -
(转)Java jacob调用打印机打印word文档
2017-12-01 17:33 3767折腾了好久,最终决定由用一个第三方的,找到了jacob,还不 ... -
gson的使用分享
2016-01-15 13:48 1837一、 最基本的对象与JSON相互转换 1、 定义java对象 ... -
(转)FindBugs规则整理
2015-12-18 10:40 6622FindBugs是基于Bug Patterns ... -
Gson注解和GsonBuilder
2015-04-07 11:49 1698//注意这里的Gson的构建方式为GsonBuilder, ... -
Spring AOP 的@Aspect (转)
2015-03-03 15:50 906从Spring 2.0开始,可以使用基于schema及@As ... -
Hibernate一对多和多对一关系详解 (转载)
2014-07-10 17:00 1841双向一对多关系,一是关系维护端(owner side),多是关 ... -
Struts2的Action如何交给spring来管理
2014-07-10 11:35 854我的Action是 <package name=&qu ... -
javax.xml.ws.soap.SOAPFaultException: Cannot create a secure XMLInputFactory
2014-06-04 20:26 1820javax.xml.ws.soap.SOAPFaultExce ... -
照片打包下载
2014-05-22 09:32 1229设计思路: 通过业务表中照片编号获得需要下载的照片列表 ... -
获得请求IP
2013-12-06 14:18 1113在AbstractInterceptor中 Action ... -
jxl导入excel
2013-09-17 16:56 934jxl读取excel和写excel基本类似,只是Writab ... -
Apache与Nginx的优缺点比较(转)
2013-08-26 11:13 11681、nginx相对于apache的优点: 轻量级,同样起we ... -
findbugs清理总结
2013-08-19 14:45 3017findbugs警告26个。主要有以下9类问题。 1、B ... -
Spring 2.0 的AOP
2013-05-22 16:36 934我使用的是Spring 2.0 的AOP, 它引入了一种更加简 ... -
APK下载配置
2013-04-15 17:44 1078tomcat-6.0\conf\web.xml <mi ... -
My97DatePicker在Frame中无法打开站点
2013-04-09 17:17 1173大部分日期控件都具备功能如:带时间显示,支持周显示,自定义格式 ... -
jxl导出excel文件简单示例
2013-02-19 11:04 8861package util; import java. ... -
(转)在java中通过JDBC连接Oracle,ResultSet返回总为空,这个问题是怎么解决呢
2013-01-08 10:38 16431数据库基本访问格式 Class.forName(“JDBC驱动 ... -
转:spring多个定时任务quartz配置
2012-11-22 09:07 1540applicationContext.xml <im ...
相关推荐
ASP.NET页面验证码控件是网站安全验证的一种常见方式,它用于防止自动化的恶意程序或机器人进行非法操作,如批量注册、频繁登录尝试等。在ASP.NET框架中,我们可以使用自定义或者内置的验证码控件来实现这一功能。...
"JAVA实现注册页面验证码刷新"的课题旨在探讨如何在Java后端生成并更新前端显示的验证码,确保每次用户请求时都能显示新的、随机生成的验证码。下面将详细介绍这个过程涉及的关键知识点。 1. **验证码的生成**: -...
在网页开发中,验证码是一种常见的安全机制,用于防止恶意自动化的机器人或爬虫进行非法操作,比如批量注册、登录等。...通过这些步骤,我们可以实现一个基本的登录页面验证码功能,有效提高了系统安全性。
**JSP页面验证码详解——基于MyEclipse的完整实例** 验证码在网络安全中扮演着至关重要的角色,它能有效防止自动化的机器人程序(如恶意爬虫)进行非法操作,如批量注册、恶意登录等。在本教程中,我们将深入探讨...
本项目“页面验证码生成器”提供了一种自定义化的解决方案,允许开发者根据需求调整验证码的字符集、长度、图像尺寸以及干扰纹样式。 在Java中实现验证码生成,通常涉及到以下几个核心知识点: 1. **随机数生成**...
在本项目“C#获取页面验证码图片.zip”中,我们将探讨如何使用C#编程语言从Web页面中获取验证码图片。 首先,我们需要了解Web页面中的验证码通常是如何工作的。验证码通常由服务器生成,它是一张包含随机文本或数字...
Description: 该文章讲述了如何使用 JSP 实现注册页面验证码验证代码,代码使用请有基础 JSP 基础,知道将代码添加到哪里,文章中已做详细阐述。 Tag: JSP、验证码、代码、表单验证 Knowledge Points: 1. JSP ...
本示例以"C#页面验证码样例"为主题,旨在介绍如何在C#环境下生成和验证网页上的验证码。下面将详细阐述相关知识点。 首先,我们来看`getcode.aspx`页面,这通常是一个负责生成验证码图像的页面。在C#中,我们可以...
通过以上步骤,我们可以实现一个简单的JSP页面验证码功能。在实际应用中,还可以考虑使用更复杂的验证码库,如Google的reCAPTCHA,或者使用基于数学问题、滑动拼图等形式的验证码,以提高安全性并降低用户体验的负面...
google扩展程序利用tesseract实现登陆页面验证码识别。google扩展程序页面,开发者模式下,加载已解压的扩展程序,打开带有验证码的网站,验证码框即自动填写。 问题:识别速度较慢1-3秒,但是同一页面的第二次识别...
这是一页面的登陆代码, 做为一个登陆页面,通过这些代码可以直接进入
### JSP页面验证码生成图片详解 #### 一、概述 在网站登录或注册过程中,为了防止恶意登录或机器人操作,通常会使用验证码机制。本文档详细介绍了一种利用JSP技术生成验证码图片的方法。该方法通过Java后端动态...
这是一个关于jsp页面验证码生成,可以生成页面的验证码,可以检验验证码是否正确
下面将详细介绍如何使用JSP生成页面验证码的方法。 首先,创建一个名为`image.jsp`的JSP文件,这个文件的主要任务是生成随机的验证码图片。在代码中,我们看到以下几个关键步骤: 1. **设置页面类型**:由于我们...
ShopEx是中国一款知名的电子商务平台...通过以上步骤,一般能够解决ShopEx登录注册页面验证码不显示的问题。记住,每个步骤都需要耐心和细心,因为问题可能出在多个环节。对于技术小白来说,寻求专业帮助是明智的选择。
HTML页面验证码生成方法(四位字幕) 可用于登录、编辑资料等页面验证
总结起来,Java Web项目中实现JSP页面的验证码功能,主要涉及以下几个关键技术点: 1. 使用Java生成随机字符串。 2. 图形化验证码并处理图像效果。 3. 使用HTTP session存储验证码。 4. 创建Servlet来处理验证码图像...
系统登录页面验证码工具类,随机生成数字+字母的图片 可以修改生成的数量和清晰度
在IT行业中,页面验证码是一种广泛应用于网站安全性的重要技术,它主要用于防止自动化的机器人或恶意脚本进行非法操作,如批量注册、刷票等。验证码的主要目的是确保操作是由真实的人完成的,而不是由计算机程序。本...
在本主题中,我们将深入探讨如何使用JavaScript实现一个页面动态验证码。验证码的主要目的是防止自动化的机器人程序对网站进行恶意操作,例如批量注册、垃圾评论等。 验证码通常包括一些随机生成的字符或数字,用户...