标签:lang ida comm tran web ping ack use next
最近公司做项目开发中用到了验证码实现功能,将实现代码分享出来,
前段页面实现代码:
<ul> <li><label>验证码:</label></li> <li> <div> <input type="text" name="validateCode" class="login_input" value=""/> <img id="img" src="${baseURL }/validateCode" onclick="onclickValidateCode(this);" /> </div> </li> </ul>
为了表达清晰,样式部分代码去掉了,大家根据自己的需求,自己添加样式。
页面JS代码:触发变动验证码改变的JS
<script type="text/javascript" language="javascript"> //请求获取验证码 function onclickValidateCode(obj){ $(obj).attr("src","${baseURL }/validateCode?"+new Date().getTime()); } </script>
后台 Controller处理:
package com.njcc.pay.controller.login; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.p_w_picpath.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.Random; import javax.p_w_picpathio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.math.NumberUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.alibaba.dubbo.common.utils.StringUtils; /** * 验证马 Controller * * @author Administrator * */ @Controller public class ValidateCodeController { @SuppressWarnings("unused") private static final Log LOG = LogFactory.getLog(ValidateCodeController.class); public static final String VALIDATE_CODE = "validateCode"; private int w = 70; private int h = 23; /** * @throws Exception * 函数功能说明 : 进入后台登陆页面. * * @参数: @return * @return String * @throws */ @RequestMapping(value = "/validateCode") public void validateCode(HttpServletRequest request, HttpServletResponse response) throws Exception { createImage(request,response); } private void createImage(HttpServletRequest request,HttpServletResponse response) throws IOException { response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.setContentType("p_w_picpath/jpeg"); String width = request.getParameter("width"); String height = request.getParameter("height"); if (StringUtils.isNumeric(width) && StringUtils.isNumeric(height)) { w = NumberUtils.toInt(width); h = NumberUtils.toInt(height); } BufferedImage p_w_picpath = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); Graphics g = p_w_picpath.getGraphics(); /* * 生成背景 */ createBackground(g); /* * 生成字符 */ String s = createCharacter(g)