ession.setAttribute("validateCode", randomCode.toString()); // 禁止图像缓存。 resp.setHeader("Pragma", "no-cache"); resp.setHeader("Cache-Control", "no-cache"); resp.setDateHeader("Expires", 0);
resp.setContentType("image/jpeg"); // 将图像输出到Servlet输出流中。 ServletOutputStream sos = resp.getOutputStream(); ImageIO.write(buffImg, "jpeg", sos); sos.close(); } }
产生结果servlet
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Package name : com.skcc.sample.action File name : ResultServlet.java Author : * Administrator Date : 2008-9-4 Description : ResultServlet */ public class ResultServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; /** * The doGet method of the servlet.
* * This method is called when a form has its tag value method equals to get. * * @param request * * * the request send by the client to the server the response send by the server to the client if an error occurred * @param response * @throws ServletException
* @throws IOException * */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * The doPost method of the servlet.
* * This method is called when a form has its tag value method equals to * post. * * @param request * * * * */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); String validateC = (String) request.getSession().getAttribute( "validateCode"); String veryCode = request.getParameter("veryCode"); PrintWriter out = response.getWriter(); if (veryCode == null || "".equals(veryCode)) { out.println("验证码为空"); } else { if (validateC.equals(veryCode)) { out.println("验证
码正确"); } else { out.println("验证码错误"); } } the request send by the client to the server the response send by the server to the client if an error occurred if an error occurred * @param response * @throws ServletException * @throws IOException if an error occurred
out.flush(); out.close(); } }
js文件
function changeImg() { var imgSrc = $("#imgObj"); var src = imgSrc.attr("src"); imgSrc.attr("src", chgUrl(src)); } //时间戳 //为了使每次生成图片不一致,即不让浏览器读缓存,所以需要加上时间戳 function chgUrl(url) { var timestamp = (new Date()).valueOf(); url = url.substring(0, 17); if ((url.indexOf("&;") >= 0)) { url = url + "tamp=" + timestamp; } else { url = url + "?timestamp=" + timestamp; } return url; } function isRightCode() { var code = $("#veryCode").attr("value"); code = "c=" + code; $.
ajax( { type : "POST", url : "resultServlet", data : code, success : callback }); } function callback(data) { $("#info").html(data); }
页面verifyCode.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>