`
jackchen0227
  • 浏览: 147308 次
  • 性别: Icon_minigender_1
  • 来自: 帝都
社区版块
存档分类
最新评论

struts2使用kaptcha生成验证图片

阅读更多

1、到http://code.google.com/p/kaptcha/ 下载jar文件到 WEB-INF/lib目录下

2、配置web.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app id="starter" version="2.4" 
         xmlns="http://java.sun.com/xml/ns/j2ee" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	
	<display-name>Struts 2 - Maven Archetype - Starter</display-name>
	
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:applicationContext.xml</param-value>
	</context-param>
<!-- 关键是这部分servlet配置要放在下面的filter配置之前,否则就会找默认的action去处理了-->	
	<servlet>
		<servlet-name>Kaptcha</servlet-name>
		<servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
		
		<init-param>
			<param-name>kaptcha.image.width</param-name>
			<param-value>100</param-value>
		</init-param>
		<init-param>
			<param-name>kaptcha.image.height</param-name>
			<param-value>30</param-value>
		</init-param>
		<init-param>
			<param-name>kaptcha.textproducer.font.size</param-name>
			<param-value>30</param-value>
		</init-param>
		<init-param>
			<param-name>kaptcha.textproducer.char.length</param-name>
			<param-value>4</param-value>
		</init-param>
		<init-param>
			<param-name>kaptcha.border</param-name>
			<param-value>no</param-value>
		</init-param>

		<init-param>
			<param-name>kaptcha.textproducer.font.color</param-name>
			<param-value>black</param-value>
		</init-param>

		<init-param>
			<param-name>kaptcha.textproducer.char.space</param-name>
			<param-value>2</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>Kaptcha</servlet-name>
		<url-pattern>/Kaptcha.jpg</url-pattern>
	</servlet-mapping>

	<!-- Filters -->
    <filter>
        <filter-name>action2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>action2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
		
    
	<!-- Listeners -->
	<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
      
    
    <!-- Welcome file lists -->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.jsp</welcome-file>
        <welcome-file>login.jsp</welcome-file>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

</web-app>
关键是这部分servlet配置要放在下面的filter配置之前,否则就会找默认的action去处理了,而且struts2是支持servlet配置的
 

 3、jsp文件

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<%@ page language="java" contentType="text/html; charset=UTF-8" %>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>登陆</title>
	</head>
	<body>							
		<form method="POST">
			<table>
				<tr>
					<td>用户名称:</td>
					<td><input type="text" name="userId"></td>
				</tr>
				<tr>
					<td>用户密码:</td>
					<td><input type="password" name="passwd"></td>
				</tr>
				<tr>
					<td>验证码:</td>
					<td><input type="text" name="userId"></td>
					<td><img src="../Kaptcha.jpg"></td>
				</tr>
				<tr>
					<td><input type="submit" name="submit"></td>
				</tr>
			</table>
		</form>
	</body>
</html>

 关键是<td><img src="../Kaptcha.jpg"></td>这个文件名是在配置文件里边指定的,而且要注意相对路径
4、action中可以利用下列代码获得验证码数值

Map<String,Object> session = ActionContext.getContext().getSession();		
String kaptchaExpected = (String)session.get(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
session.remove(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
 
分享到:
评论

相关推荐

    struts2-生成图片验证码

    通过整合这些组件,开发者可以构建一个完整的Struts2应用程序,其中包含生成和验证图片验证码的功能,从而增强网站的安全性。这个过程涉及到Java编程、Web图像处理、HTTP协议理解以及Struts2框架的深入运用。

    Strut2版使用kaptcha验证码

    kaptcha验证码在使用上比其它的都方便,配置也相对简单,建议将本实例中的源码导入到Eclipse运行。其中主要有几处配置,一是在Web.xml文件里增加相应的配置,后是在Action里做相关的生成及校验工作。前台采用不刷新...

    Struts2的验证码生成

    2. **配置Struts2**:在Struts2的配置文件(struts.xml)中,我们需要定义一个Action,这个Action将负责生成验证码。Action应该有一个结果类型,指向一个JSP页面或者FreeMarker模板,用于显示验证码图片。 3. **...

    Struts2远程命令执行验证工具

    这个标题提到的“Struts2远程命令执行验证工具”就是专门针对这类漏洞设计的检测和分析软件。 Struts2远程命令执行漏洞,通常被称为S2-045或CVE-2017-5638,是由于Struts2框架在处理特定的HTTP头信息时存在缺陷,...

    FreeMarker,Struts2,代码生成器

    在使用FreeMarker和Struts2时,代码生成器可以结合这两者的优势,自动生成符合这两框架规范的代码。例如,对于视图层,代码生成器可以基于FreeMarker模板生成HTML页面;而对于控制器层,可以生成基于Struts2 Action...

    struts2官方例子7-表单验证 xml形式的验证

    最后,在JSP页面上,我们可以使用Struts2的标签库来显示错误消息,如`&lt;s:fielderror&gt;`,这样当验证失败时,用户就能看到相应的错误提示。 总结起来,Struts2的XML表单验证是通过创建XML文件定义验证规则,然后在...

    struts2 登陆注册 以及验证

    对于验证,Struts2提供两种验证方式:客户端验证和服务器端验证。客户端验证通常使用JavaScript进行,对用户输入的数据进行实时检查,如非空验证、格式验证等。服务器端验证则在服务端进行,确保数据的安全性,防止...

    shiro kaptcha struts2 源码

    Shiro 是一个强大且易用的安全管理框架,Kaptcha 则用于生成验证码,防止自动化程序的恶意操作,而Struts2 是一个基于MVC设计模式的Web应用框架。以下是这三个框架的详细知识讲解: 1. Apache Shiro: - **简介**...

    struts2图片上传并生成缩略图,展示缩略图点击显示大图

    在这个场景中,我们将关注如何使用Struts2框架结合FileUpload库来实现图片上传,并通过生成缩略图来优化用户体验。Struts2是一个流行的Java Web框架,它提供了一种结构化的方式来处理用户请求,而FileUpload则是处理...

    Struts2 使用Validation框架验证数据(三十七)

    本篇文章将详细探讨Struts2如何使用Validation框架进行数据验证。 一、Struts2 Validation框架概述 Struts2的Validation框架是用于处理用户输入验证的一种机制。它允许开发者定义验证规则,这些规则会在用户提交...

    struts2验证框架

    Struts2 验证框架详解 Struts2 验证框架是基于 Java 语言的 Web 应用程序框架,提供了一个强大的验证机制,以确保用户输入的数据满足业务逻辑的要求。在 Struts2 中,验证机制是通过 validator 来实现的,该机制...

    struts2简单的登陆验证

    这个"struts2简单的登陆验证"项目是一个基础入门级别的教程,适合初学者学习理解Struts2的核心概念和工作原理。 在Struts2中,登陆验证是常见的功能,涉及到用户身份的确认和权限控制。下面我们将详细探讨Struts2...

    struts2 生成验证码

    ### Struts2 生成验证码知识点解析 #### 一、引言 在Web应用程序开发中,验证码是一种常见的安全机制,用于防止自动化的恶意攻击,如垃圾邮件发送或非法登录尝试等。Struts2作为一款流行的Java Web应用框架,支持...

    struts2内存中生成excel并下载

    struts2内存中生成excel并下实例

    Struts2与Freemarker生成xml文本详细步骤

    在Struts2中结合使用Freemarker,可以方便地生成XML文本,这对于数据交换或XML配置文件的生成非常有用。以下将详细介绍如何在Struts2中利用Freemarker生成XML文本的步骤。 1. **环境配置** 首先,确保你已经安装并...

    struts2登陆验证

    可以使用Struts2的Validator框架,通过定义验证规则文件(如login-validation.xml)来自动执行验证。 6. **会话管理**:如果验证成功,通常会将用户信息存入Session,以便后续页面能识别用户状态。例如,设置`...

    基于struts2的验证码生成

    5. **结果映射(Result Mapping)**:在Struts2的配置文件(struts.xml)中,我们需要定义Action类的不同结果,比如生成验证码成功后的页面跳转,或者验证失败后的提示信息。 6. **JSP页面**:前端展示部分,包括...

    struts2的Ajax实现注册验证

    一个简单的例子是使用`$.ajax()`函数,指定URL为Struts2 Action的路径,方法为GET或POST,根据你的需求来传递参数,如待验证的用户名。 3. **服务器端验证**:在Action类中,你需要编写一个方法来检查用户名是否已...

    struts2 上传图片时对图片进行压缩, 生成一张小图片

    本主题涉及的是如何在Struts2中处理图片上传,并在上传后对其进行压缩,生成一张小图片以便在网页上展示。以下是实现这一功能所需的关键知识点: 1. **Struts2上传组件**: Struts2提供了`struts2-convention-...

Global site tag (gtag.js) - Google Analytics