springmvc结合cx-common实现验证码的功能

转贴请标明出处:http://blog.csdn.net/kouwoo/article/details/42675201

springmvc的配置就不详细说了,这里就把关键地方的代码贴出来

code.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
	<title>Insert title here</title>

	<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>

	<script type="text/javascript">
		function refresh(obj) {
			var w = "${w}";
			obj.src = w + "/im.html?" + Math.random(); //加个Math.random();为了不让浏览器有缓存
			$("#validatecode").attr("value","");
		}
	</script>

	</head>
	<body>
		<form action="validate.html" method="post">
			<table>
				<tr>
					<td>验证码:</td>
					<td>
						<input type="text" id="validatecode" name="validatecode"/>
					</td>
					<td>
						<img style="cursor: pointer;" onclick="refresh(this);"
					src="${w}/im.html" title="点击刷新验证码" />
				</td>
					<td><input type="submit" value="确定"/></td>
				</tr>
			</table>
		</form>
	</body>
</html>

CodeController.java

package net.spring.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.cx.web.common.util.RandomValidateCode;

@Controller
public class CodeController {

	@RequestMapping(value = "code", method = RequestMethod.GET)
	public String code(HttpSession session, HttpServletRequest request) {
		session.setAttribute("w", request.getContextPath());
		return "code";
	}

	/**
	 * 获取验证码
	 * @param response
	 * @param request
	 */
	@RequestMapping("im")
	public void validationImg(HttpServletResponse response,
			HttpServletRequest request) {
		response.setContentType("image/jpeg");// 设置相应类型,告诉浏览器输出的内容为图片
		response.setHeader("Pragma", "No-cache");// 设置响应头信息,告诉浏览器不要缓存此内容
		response.setHeader("Cache-Control", "no-cache");
		response.setDateHeader("Expire", 0);

		RandomValidateCode randomValidateCode = new RandomValidateCode();

		try {
			randomValidateCode.getRandcode(request, response);// 输出图片方法
		} catch (Exception e) {
		}
	}

	/**
	 * 判断验证码是否正确
	 * @param validatecode
	 * @param session
	 * @return
	 */
	@RequestMapping(value ="validate",method = RequestMethod.POST)
	public String validate(@RequestParam String validatecode,HttpSession session){
		// 取得 session 中的 code
		String validateC = (String) session.getAttribute(RandomValidateCode.RANDOMCODEKEY);

		if (validatecode == null || "".equals(validatecode)) {
			// 输入的验证码为空
			// TODO
		}

		if (!validateC.equals(validatecode.toUpperCase())) {
			// 输入的验证码不正确
			// TODO
		}

		return null;
	}

}

效果图

时间: 2024-11-08 21:27:39

springmvc结合cx-common实现验证码的功能的相关文章

SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释

SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释 2016-04-14 23:40 13030人阅读 评论(2) 收藏 举报 分类: SSM(7) 这几天一直在整合SSM框架,虽然网上有很多已经整合好的,但是对于里面的配置文件并没有进行过多的说明,很多人知其然不知其所以然,经过几天的搜索和整理,今天总算对其中的XML配置文件有了一定的了解,所以拿出来一起分享一下,希望有不足的地方大家批评指正~~~ 首先   这篇文章暂时只对框架中所要用到的配置文件进行解

Spring Security实现图形验证码的功能

一.生成图片验证码的步骤1.根据随机数生成数字2.将随机数存到Session中3.将生成的图片写到接口的响应中 public class ImageCode { private BufferedImage image;//展示的图片 private String code;//生成的随机数,Session private LocalDateTime expireTime;//过期时间 public BufferedImage getImage() { return image; } public

springmvc+mybatis+sql server实现简单登录功能【转】

一.源码: 1.Users.java package com.login.entity;import java.io.Serializable;public class Users implements Serializable {  /**    *     */  private static final long serialVersionUID = 1L;  private Integer id;  private String username;  private String pas

Spring学习之SpringMVC框架快速搭建实现用户登录功能

关于SpringMVC的介绍我就不多说了,网上一搜一大堆,好多大鸟的博客都有详细的描述,之前看的跟开涛学SpringMVC,写的非常好,SpringMVC运行的流程和原理讲的非常的细致在此我引用一下开涛前辈的图片和文字,大家要是想看原文就点击上面的链接. SpringMVC处理请求的流程图 大家一定要仔细的看,最好是拿张纸,画一画,可比你光看有效果,大家可以与纯MVC模式对比一下,这样理解起来就不是那么的难了. 对上面的图在此细化 在此我们可以看出具体的核心开发步骤: DispatcherSer

Android开发:验证码倒计时功能实现

前言 现在好多个APP里面都有验证码倒计时按钮,实现方式大概有下面几种: 1.使用线程和Handler的方式,定时刷新倒计时数字,这种方式容易导致内存泄露,所以一般都使用弱引用,控制数字的刷新. 2.自定义倒计时按钮 3.使用Android提供的CountDownTimer结合TextView实现倒计时功能 这篇主要就是说下用第三种方式实现,简单好用 效果图 实现 以下是核心代码: /** * Created by hfs on 2017/5/9. */ public class TimeCou

轻松把玩HttpClient之封装HttpClient工具类(七),新增验证码识别功能

这个HttpClientUtil工具类分享在GitHub上已经半年多的时间了,并且得到了不小的关注,有25颗star,被fork了38次.有了大家的鼓励,工具类一直也在完善中.最近比较忙,两个多月前的修改在今天刚修改测试完成,今天再次分享给大家. 验证码识别这项技术并不是本工具类的功能,而是通过一个开源的api来识别验证码的.这里做了一个简单的封装,主要是用来解决登陆时的验证码的问题.在线验证码识别官网:http://lab.ocrking.com/,github地址:https://githu

SpringMVC 实现国际化与图片验证码

一.生成图片验证码(一般在登陆.注册.找回密码等使用) (1)生成图片类 @Component public class RandomValidateCode { /** * 生成代码 * * @return */ public static String createValidateCode(int size) { String seed = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"; int l

重构Spring Security实现图形验证码的功能

不单要写完功能,而是要把它变的可以配置,供其他的应用可以使用优化要点 验证码的基本参数可配置(宽/高/验证码数字的长度/验证码的有效时间等) 验证码的拦截接口可配置(url地址) 验证码的生成逻辑可配置(更复杂的验证码生成逻辑) 1.验证码的基本参数可配置 在调用方 调用验证码的时候,没有做任何配置,则使用默认的验证码生成规则,如果有则覆盖掉默认配置.默认配置 //生成二维码默认配置 public class ImageCodeProperties { private int width = 6

如何在 Laravel 中 “规范” 的开发验证码发送功能

什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+(简称TS+).ThinkSNS V4.ThinkSNS[简]. 需求场景 发送「验证码」或者「消息通知」,可发送到手机或邮箱中. 完成 首先,在Laravel中的规范就是使用Laravel的「消息通知」,这里基于场景为「验证码」.这个需求几乎所有软件系统都有使用到. 创建通知场景 第一步,使用php artisan ma