spring mvc 页面验证码样例

验证码类:

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

public class VerifyCodeServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public VerifyCodeServlet() {

super();

}

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException {

// 禁止图像缓存,使得单击验证码可以刷新验证码图片

String randSource[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "q", "w", "e", "r", "t", "y", "u",

"i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "z", "x", "c", "v", "b", "n", "m" };

String randStr = "";

HttpSession session = request.getSession();// 获得一个session对象

resp.setHeader("Pragma", "nocache");

resp.setHeader("Cache-Control", "no-cache");

resp.setDateHeader("Expires", 0);

resp.setContentType("image/jpeg");

CreateImageCode vCode = new CreateImageCode(100, 30, 5, 10);

session.setAttribute("verifyCodeFind", vCode.getCode());

vCode.write(resp.getOutputStream());

}

}

jsp页面:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html lang="zh-CN">

<head>

<title>sf</title>

<form id="formData" method="post" action="${pageContext.request.contextPath }/save">

<label><span>姓名</span>

<input id="uName" type="text" name="userName"  />

</label>

<label><span>验证码</span>

<input type="text" style="width:100px;height: 30px" name="yzm" id="yzm" tabindex="3" dataType="Limit" min="1"  msg="验证码不能为空" class="i-text"/>

<img id="changecode" src="/sf/VerifyCodeServlet?.tmp=0.06781555591097987" style="vertical-align: middle; margin: 0px; cursor: pointer" title="点击更换验证码" border=0 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input type="button" value="确认提交" class="tj-btn" id="tj">

</form>

<script type="text/javascript">

$(‘#tj‘).click(function(){

$.ajax({

type: ‘POST‘,

url: ‘${pageContext.request.contextPath }/save‘,

data: $(‘#formData‘).serialize(),

dataType:‘json‘,

success: function(data){

if(data.result==1){

$(‘#formData‘)[0].reset();

$(‘#changecode‘).attr(‘src‘,‘/sf/VerifyCodeServlet?.tmp=‘ + Math.random());

alert(‘提交成功‘);

}else{

$(‘#changecode‘).click();

alert(data.errorMessage);

}

},

dataType: ‘json‘

})

});

$(‘#changecode‘).click(function(){

$(this).attr(‘src‘,‘/sf/VerifyCodeServlet?.tmp=‘ + Math.random());

$(‘#yzm‘).focus().val(‘‘);

});

</script>

</body>

</html>

控制层:

@Controller

@RequestMapping("/sf")

public class SFController {

@RequestMapping(value = "/save", method = RequestMethod.POST)

@ResponseBody

public BaseAjaxResponse save(DTO dto,HttpServletRequest request , String yzm) {

BaseAjaxResponse res = new BaseAjaxResponse();

if(StringUtils.isBlank(yzm)){

res.setErrorMessage("验证码不能为空");

return res;

}else if(!yzm.toLowerCase().equals(request.getSession().getAttribute("verifyCodeFind"))){

res.setErrorMessage("验证码错误");

return res;

}else{

request.getSession().setAttribute("verifyCodeFind","");

try {

this.checkedBaggageDamageService.saveOrUpdate(dto, request);

res.setResult(1);

} catch (Exception e) {

e.printStackTrace();

res.setErrorMessage(e.getMessage());

}

}

return res;

}

}

时间: 2024-10-22 10:07:59

spring mvc 页面验证码样例的相关文章

Spring MVC页面重定向

以下示例显示如何编写一个简单的基于Web的重定向应用程序,这个应用程序使用重定向将http请求传输到另一个页面. 基于Spring MVC - Hello World实例章节中代码,创建创建一个名称为 PageRedirection 项目. 在 com.ktao.controller 包下创建一个Java类WebController. 在jsp子文件夹下创建一个视图文件index.jsp,final.jsp. 最后一步是创建所有源和配置文件的内容并导出应用程序,如下所述. 完整的项目代码,如下所

Spring Ajax一个简单样例

配置不说了.要在前面helloworld的样例基础上弄. 相同在hello下新建ajax.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page isELIgnored ="false" %> <!DOCTYPE html PUBLIC "-//

Spring MVC页面重定向实例

以下内容引用自http://wiki.jikexueyuan.com/project/spring/mvc-framework/spring-page-redirection-example.html: 例子: pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo

spring mvc之验证码kaptcha

该验证码使用的谷歌的kaptcha,在他的基础上去掉了模糊的属性,和官方的jar包有区别.不废话,贴代码. <bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha"> <property name="config"> <bean class="com.google.code.kaptcha.util.Conf

aspx与mvc页面验证码

验证码类代码 using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web; namespac

spring mvc页面显示图片失败

在配置文件中需要映射静态资源 <!-- 当在web.xml 中 DispatcherServlet使用 <url-pattern>/</url-pattern> 映射时,能映射静态资源 --><mvc:default-servlet-handler/><!-- 静态资源映射,配置了<mvc:annotation-driven /> 才会起作用--><mvc:resources mapping="/html/**&quo

struts2与spring mvc 的比较

1.传值: struts2通过set get来传值,而spring mvc 可以直接在方法里传值(String username,Model model)model也可以换成map来传值但不建义 model.addAttrubute("username",username),当然也可以直接写model.addAttribute(username),默认key是传值的值类string. model.addAttribute(new User()):key 就是User. 2.struts

spring mvc 集成mongoDB项目 例子

免费下载项目:点击打开链接 这个pom内容有点多,有的可以不用 <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/maven-v4_0_0

Spring MVC【入门】

MVC 设计概述 在早期 Java Web 的开发中,统一把显示层.控制层.数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1: 出现的弊端: JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦合在了一起 要求开发者不仅要掌握 Java ,还要有高超的前端水平 前端和后端相互依赖,前端需要等待后端完成,后端也依赖前端完成,才能进行有效的测试 代码难以复用 正因为上面的种种弊端,所以很快这种方式就被 Servlet + JSP