- 浏览: 161104 次
最新评论
-
bihongliang:
并且服务端一直报错:javax.bluetooth.Bluet ...
android 和 PC端 进行蓝牙通信 demo -
bihongliang:
你好,博主,我是windows10 64 位系统,加载了 64 ...
android 和 PC端 进行蓝牙通信 demo -
白云飘飘2016:
fcylf 写道win7 64位,pc端测试,报错:Nativ ...
android 和 PC端 进行蓝牙通信 demo -
fcylf:
win7 64位,pc端测试,报错:Native Librar ...
android 和 PC端 进行蓝牙通信 demo -
abc天残:
http://www.iteye.com/images/smi ...
android 从服务器下载更新新版本软件 demo
和上一篇验证码的例子(kaptcha插件的使用)类似,同样加进了spring mvc、jquery
项目目录结构:
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.royal</groupId> <artifactId>verifyCode_jcaptcha</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>verifyCode_jcaptcha</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- 需要用到的jar --> <dependency> <groupId>com.octo.captcha</groupId> <artifactId>jcaptcha-all</artifactId> <version>1.0-RC6</version> </dependency> <!-- spring mvc --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-asm</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-instrument</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc-portlet</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>jsp-api</artifactId> <version>6.0.35</version> </dependency> </dependencies> </project>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>jcaptcha</servlet-name> <servlet-class>com.royal.servlet.ImageCaptchaServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-mvc.xml</param-value> </init-param> </servlet> <!-- MVC不过滤以下文件 --> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.gif</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>jcaptcha</servlet-name> <url-pattern>/jcaptcha</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
spring-mvc.xml
<beans xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd" > <context:component-scan base-package="com.royal.controller"/> <bean name="/verifyJcaptcha" class="com.royal.controller.VerifyJcaptchaController" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" > <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
CaptchaServiceSingleton.java
package com.royal.verifyCode_jcaptcha; import com.octo.captcha.service.image.DefaultManageableImageCaptchaService; import com.octo.captcha.service.image.ImageCaptchaService; /** * 实例一个jcaptcha服务,注意,必须是单例模式 */ public class CaptchaServiceSingleton { private static ImageCaptchaService instance = new DefaultManageableImageCaptchaService(); public static ImageCaptchaService getInstance(){ return instance; } }
ImageCaptchaServlet.java
package com.royal.servlet; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.royal.verifyCode_jcaptcha.CaptchaServiceSingleton; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; /** * 一个产生图片的servlet */ public class ImageCaptchaServlet extends HttpServlet{ private static final long serialVersionUID = 1L; @Override public void init(ServletConfig config) throws ServletException { super.init(config); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { byte[] captchaChallengeAsJpeg = null; //the output stream to render the captcha image as jpeg into ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream(); //get the session id that will identify the generated captcha.the same id must be used to validate the response, the session id is a good candidate! String captchaId = req.getSession().getId(); //call the ImageCaptchaService getChallenge method BufferedImage challenge = CaptchaServiceSingleton.getInstance().getImageChallengeForID(captchaId, req.getLocale()); //a jpeg encoder JPEGImageEncoder jpegEncoder = JPEGCodec.createJPEGEncoder(jpegOutputStream); jpegEncoder.encode(challenge); captchaChallengeAsJpeg = jpegOutputStream.toByteArray(); // flush it in the response resp.setHeader("Cache-Control", "no-store"); resp.setHeader("Pragma", "no-cache"); resp.setDateHeader("Expires", 0); resp.setContentType("image/jpeg"); ServletOutputStream responseOutputStream = resp.getOutputStream(); responseOutputStream.write(captchaChallengeAsJpeg); responseOutputStream.flush(); responseOutputStream.close(); } }
也就是当你点击图片进行刷新的时候,访问的就是这个servlet(用于生成验证码图片)
这里可能有个小问题:
当你要用 JPEGImageEncoder 和 JPEGCodec,你会发现无法导入rt.jar里面的 com.sun.image.codec.jpeg.JPEGCodec
com.sun.image.codec.jpeg.JPEGImageEncoder
这两个类
解决办法:deprecated and restricted API--- Forbidden 选项改为warning
参考:http://blog.csdn.net/oney139/article/details/6539624
mvc 控制类
VerifyJcaptchaController.java
package com.royal.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; import com.royal.verifyCode_jcaptcha.CaptchaServiceSingleton; public class VerifyJcaptchaController extends AbstractController{ @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { Boolean isResponseCorrect = Boolean.FALSE; //remenber that we need an id to validate! String captchaId = request.getSession().getId(); System.out.println("captchaId---" + captchaId); //retrieve the response String resp = request.getParameter("j_captcha_response"); System.out.println("j_captcha_response---" + resp); // Call the Service method isResponseCorrect = CaptchaServiceSingleton.getInstance().validateResponseForID(captchaId, resp); System.out.println("isResponseCorrect---" + isResponseCorrect); if(isResponseCorrect == true){ return new ModelAndView("success"); }else{ System.out.println("FAIL.."); return null; } } }
同样别忘了maven build...
启动tomcat,访问:http://localhost:8080/verifyCode_jcaptcha/
demo算是demo完了,但总觉得变扭,图片好像不怎么好看,图片大小不知道怎么改。API没看。
官方:http://jcaptcha.sourceforge.net/
千篇一律的这个不完整例子 参考:http://www.blogjava.net/alex/archive/2006/06/11/51976.html
- verifyCode_jcaptcha.rar (110.2 KB)
- 下载次数: 29
发表评论
-
各地图API坐标系统比较与转换
2015-08-07 15:34 1023/** * 各地图API坐标系统比较与转换; * W ... -
Netty Websocket 例子
2015-01-08 14:36 1813Netty框架(Netty-3.5.7.Final)来实现W ... -
基于CXF的webService本地数据交互----PC端(四)
2013-04-26 17:20 1597不想新建项目了(可以参考前面一、二、三),就在现有的 ... -
LDAP简单的增删查改
2013-03-04 14:08 31121. 认证信息: package com.royal ... -
pushlet 推送框架简单使用Demo
2013-01-30 14:48 3251人懒了,有点不想写了,网上有好例子,帮忙宣传一下。 ... -
Java调用 SMS Cat发短信
2012-11-02 16:38 2308居然不能发表SMS Cat的中文名?! 这个是 SMS ... -
jersey demo
2012-08-28 16:33 2194同样是Maven构建的项目,不解释。 项目 ... -
验证码例子(kaptcha插件的使用)
2012-07-19 17:35 2834使用kaptcha插件实现验证码小例子(顺便加了spri ... -
springMVC security Demo
2012-07-03 10:33 2496springMVC 结合权限控制。 项目目录结构 ... -
Apache Mina 入门Demo
2012-06-11 14:45 8162什么是Mina,用Mina可以干什么? 官网 ... -
springMVC Demo
2012-06-07 16:32 1609项目目录结构图: 项目前需要用到的jar包 ... -
List 对象排序 Demo
2012-04-19 11:18 920List 对象排序 Demo 项目目录结构: ... -
restful webservice in springMVC Demo
2012-04-18 17:24 3018Maven restful webservice spring ... -
dom4j简单的XML文件遍历 demo
2012-04-10 15:48 1576随便找一个简单的xml文件,存放进自己的项目中 data.x ... -
基于CXF的webService本地数据交互----PC端与Android端(三)
2012-03-31 09:49 2455本篇基于(二)的基础上续写 主要是JSON的数据交 ... -
bitbucket免费在线库的简用
2012-03-22 10:46 4517bitbucket相当于SVN;版本库的管理,在线免费存储。一 ... -
Checkstyle代码检测插件简用
2012-03-16 13:17 14761.Checkstyle特点简介 a.自动化代码检测 ... -
基于CXF的webService本地数据交互----PC端与Android端(二)
2012-03-15 17:02 1512服务端以maven的形式创建项目。 项目创建好后 ... -
maven自定义本地库位置.m2/repository
2012-03-14 16:56 10297默认的maven本地库位置是:${user.home}/.m2 ... -
jrebel插件实现热部署
2012-03-09 11:59 5267一、eclipse中 jrebel 插件的安装: ...
相关推荐
2. 创建验证码:在服务器端,使用jCaptcha API生成验证码,并将其存储在会话(Session)中。 3. 显示验证码:将生成的验证码图像发送到客户端,一般通过HTTP响应流的方式。 4. 用户输入:用户在前端页面输入看到的...
基于java的开发源码-Struts验证码插件 JCaptcha4Struts2.zip 基于java的开发源码-Struts验证码插件 JCaptcha4Struts2.zip 基于java的开发源码-Struts验证码插件 JCaptcha4Struts2.zip 基于java的开发源码-Struts...
验证码使用jcaptcha,发送邮件使用JEmail 基于SSM实现的注册登录系统。验证码使用jcaptcha,发送邮件使用JEmail 基于SSM实现的注册登录系统。验证码使用jcaptcha,发送邮件使用JEmail 基于SSM实现的注册登录系统。...
Java验证码组件Jcaptcha是用于生成安全、动态的图像验证码的工具,主要目的是为了防止自动化的机器人或恶意软件在...通过学习和理解Jcaptcha的原理及使用方式,开发者可以更好地应对网络安全挑战,提升应用的防护能力。
Struts验证码插件JCaptcha4Struts2是一个用于Java Web应用的安全组件,旨在防止自动化的机器人或恶意软件通过表单提交进行欺诈性操作。在Web开发中,验证码(CAPTCHA)是一种常用的方法,用于区分人类用户和计算机...
Struts验证码插件 JCaptcha4Struts2.7z
JAVA源码Struts验证码插件JCaptcha4Struts2
java资源Struts验证码插件 JCaptcha4Struts2提取方式是百度网盘分享地址
Struts验证码插件JCaptcha4Struts2是一个用于增强Web应用程序安全性的工具,它整合了Jcaptcha库,为Struts2框架提供了强大的验证码功能。在Web应用中,验证码是一种防止恶意自动化程序(如机器人)进行非法操作的...
Struts验证码插件JCaptcha4Struts2是一个用于Java Web应用的安全组件,旨在防止自动机器人或恶意用户通过自动化脚本进行非法操作,如批量注册、恶意登录等。这个插件结合了Struts2框架和JCaptcha库,为Struts2应用...
5. **示例应用**:如果提供的压缩包包含一个完整的示例应用,那么你可以直接运行这个应用,了解如何在实际项目中使用JCaptcha4Struts2插件。这可能包括Web应用的部署描述符(如`web.xml`),以及必要的Maven或Gradle...
本文将详细介绍`jCaptcha`在基于`Acegi`安全框架的应用中的使用,以及如何设置一个简单的`jCaptcha`验证码实例。 首先,我们来看`jcaptcha-1.0-all.jar`这个文件,它是`jCaptcha`的核心库,包含了所有必要的类和...
6. **JSP标签**:为了方便在JSP页面中使用,插件通常会提供一些自定义标签,如`<jcaptcha:captcha>`,用于插入验证码图片,并处理用户的验证输入。 在实际开发过程中,开发者需要按照以下步骤进行: 1. 添加...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计...基于SSM实现的注册登录系统源码+项目说明(验证码使用jcaptcha,发送邮件使用JEmail).zip
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计...基于SSM创建的注册登录系统源码+项目说明(验证码使用jcaptcha,发送邮件使用JEmail).zip
Java JCaptcha验证码生成详解 验证码(CAPTCHA)是一种防止机器自动操作的安全机制,它通过让用户输入图片或音频中显示的随机字符来验证用户是否为真实的人。在Java开发中,JCaptcha是一个广泛使用的开源库,它提供...
`JCaptcha4Struts2`是一个专为Struts2设计的验证码插件,它允许开发者轻松集成验证码功能到他们的应用中。 首先,`JCaptcha4Struts2`依赖于`JCaptcha`库,这是一个Java实现的开源验证码生成器。`JCaptcha`提供了一...
项目通过使用jcaptcha插件,实现了一个简单的验证码生成的功能。