`
ye_haiqiang
  • 浏览: 88458 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

JSP验证码

    博客分类:
  • J2EE
阅读更多

很多人在JSP验证码上都迷糊,这里我介绍一下一种验证码(纯数字的),4位随机数(0-9)不多说了,我们就来看下代码吧!image.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); 
} 
%> 
<% 
	out.clear();//这句针对resin服务器,如果是tomcat可以不要这句 
	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(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); 
	} 
	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()); 
%>

 

引用的时候只要如下代码:(jsp文件中)-->这里还给了刷新验证码的作用

login.jsp

 

<script language="JavaScript">
      //刷新验证码
    function loadimage()
     {
           document.getElementById("randImage").src= "images.jsp?"+Math.random(); 
     } 
</script>

<a href="javascript:loadimage();" >
     <img alt="点击刷新" 
        name="randImage" id="randImage" 
        src="./images.jsp"
        width="60" 
        height="20" 
        border="1" 
       align="absmiddle">
</a>

 

这时候我们在业务控制端(如servlet、struts2 action类)

这里以struts2 action为例,代码如下:

LoginAction.java

 

public class LoginAction extends ActionSupport
{
	private String message="";
	private String verifycode;
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	public String getVerifycode() {
		return verifycode;
	}
	public void setVerifycode(String verifycode) {
		this.verifycode = verifycode;
	}
	public String execute() throws Exception 
	{
		
		//this.INPUT;
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpSession session=request.getSession();
		
		if("".equals(this.getVerifycode()))
		{
			this.setMessage("<font color='red'>验证码不能为空</font>");
			return this.INPUT;
		}
		else if(!session.getAttribute("rand").equals(this.getVerifycode()))
		{
			this.setMessage("<font color='red'>验证码出错!</font>");
			return this.INPUT;			
		}
		else
		{
			this.setMessage("<font color='red'>验证码输入正确!</font>");
						return this.SUCCESS;
		}
			
	}
}

 

希望对大家有用~

分享到:
评论

相关推荐

    实验五 AJAX开发及JSP验证码

    实验五主要涵盖了AJAX技术的运用以及JSP验证码的开发,这两个知识点对于前端开发者来说是至关重要的。AJAX,即Asynchronous JavaScript and XML(异步JavaScript和XML),它允许网页在不重新加载整个页面的情况下与...

    jsp验证码刷新功能

    ### jsp验证码刷新功能 在Web开发中,验证码(CAPTCHA)被广泛应用于表单提交、用户登录等场景,以防止自动化的恶意攻击或垃圾信息的提交。而在JSP技术中实现验证码的刷新功能,不仅可以提升用户体验,还能进一步...

    jsp 验证码(servlet)

    【JSP验证码(Servlet)详解】 验证码是一种常用的安全机制,用于防止自动化的恶意程序,如机器人,进行非法操作。在Web开发中,JSP(JavaServer Pages)与Servlet结合使用可以实现动态生成并验证验证码的功能。这...

    5种JSP验证码的源代码.rar

    这个压缩包"5种JSP验证码的源代码.rar"提供的是五种不同的JSP验证码实现方式。下面我们将详细探讨这五种验证码的实现原理和关键知识点。 1. 图片验证码: 这是最常见的验证码类型,通过生成随机字符串并将其绘制到...

    jsp验证码源码下载

    10. **安全注意事项**:尽管JSP验证码可以提供基础防护,但更高级的攻击手段(如OCR识别)可能仍能破解。因此,验证码只是多层安全措施中的一环,结合其他验证机制如IP限制、时间限制等,可以提高安全性。 以上就是...

    JSP验证码+自动刷新功能(推荐)

    JSP验证码+自动刷新功能,文件的image.jsp是负责生成验证码的,而display.jsp是负责显示效果.简单易用,平时会出现的异常都已经全部解决.

    jsp验证码实现源代码

    jsp验证码实现源代码,用jsp做注册验证码

    JSP验证码实现源代码(4为数字制成图片随机验证)

    在这个特定的案例中,我们关注的是一个JSP验证码的实现,其核心功能是生成4位随机数字并转化为图片进行用户验证。 验证码的主要目的是防止自动化程序(如机器人或恶意脚本)进行非法操作,比如注册、登录或提交表单...

    JSP验证码生成需要的Jar包

    在本例中,"JSP验证码生成需要的Jar包"提到了两个关键的Jar包:`pmiw.jar` 和 `taglibs-image.jar`。 1. **`pmiw.jar`**: 这个Jar包可能包含了用于生成验证码的相关类和方法。`pmiw`可能是某个第三方库或者项目的...

    jsp验证码程序

    【jsp验证码程序】是一种在网页应用中用于防止自动机器人或者恶意攻击的重要安全机制。它通常由服务器生成,显示为一张包含随机字符或数字的图片,用户在提交表单时需要输入图片上显示的内容,以此来验证操作是由...

    jsp验证码——数字

    ### jsp验证码——数字 #### 知识点详解 ##### JSP 验证码实现原理与过程 在本文档中,我们关注一个基于JavaServer Pages (JSP) 的数字验证码生成示例。此示例主要涉及到JSP页面的配置、Java图形处理库的使用以及...

    jsp验证码,jsp中文验证码,数字验证码,汉字验证码

    jsp验证码,jsp中文验证码,数字验证码,汉字验证码

    JSP 验证码代码 JSP 验证码代码

    综上所述,JSP验证码代码涉及了图像处理、随机数生成、HTTP会话管理等多个技术点。理解这些知识点有助于开发者构建更安全、更易用的Web应用。在实际开发中,还可以结合现有的开源验证码库,如JCaptcha或Google的...

    jsp验证码登录

    在`jsp验证码登录`这个主题中,我们将探讨如何在用户登录过程中引入验证码机制,增强系统的安全性。 首先,当用户尝试登录时,我们需要检查输入的用户名和密码。在JSP中,这可以通过`request.getParameter()`方法...

    Jsp验证码源码

    总之,理解和掌握JSP验证码的实现,不仅可以保护你的Web应用免受恶意攻击,还能帮助你更好地理解Web开发中的安全问题。通过下载、学习和实践提供的源码,你将能更深入地理解验证码技术及其在实际项目中的应用。

    JSP 验证码 字母 数字

    ### JSP验证码生成 #### 1. 基本概念 验证码是一种防止自动化软件攻击的安全机制,常用于用户登录、表单提交等场景。JSP(Java Server Pages)是一种基于Java的技术,用于创建动态网页。在JSP中生成验证码通常涉及...

    jsp教程JSP验证码代码

    【JSP验证码技术详解】 验证码(CAPTCHA)是一种防止恶意自动化程序(如机器人)滥用服务的技术,它通过向用户展示一组难以由计算机自动识别的图像或文字,要求用户输入所见内容来验证其为真实的人。在JSP(Java...

    jsp验证码图片例子

    **JSP验证码图片详解** 验证码(CAPTCHA)是一种防止恶意自动化程序(如机器人或爬虫)进行非法操作的安全机制。在网页开发中,JSP(Java Server Pages)被广泛用于生成动态的、难以通过机器自动识别的验证码图片。...

Global site tag (gtag.js) - Google Analytics