ImageAction画图Action类

import gdhb.portal.util.ImageCode;
import gdhb.portal.util.RandomUtils;
import gdhb.portal.util.Uuid;

import java.io.OutputStream;

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

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 * MyEclipse Struts
 * Creation date: 09-12-2006
 *
 * XDoclet definition:
 * @struts.action validate="true"
 */
public class ImageAction extends Action {

 // --------------------------------------------------------- Instance Variables

 // --------------------------------------------------------- Methods
// private AutocodeImage autocode = new AutocodeImage();
 /**
  * Method execute
  * @param mapping
  * @param form
  * @param request
  * @param response
  * @return ActionForward
  */
 public ActionForward execute (
  ActionMapping mapping,
  ActionForm form,
  HttpServletRequest request,
  HttpServletResponse response) throws Exception{

  // TODO Auto-generated method stub
  HttpSession session = request.getSession(true);
  String ustr = Uuid.create().toString();
  StringBuffer rand = new StringBuffer();
  for(int i=0;i<4;i++){
   int randstr = RandomUtils.buildIntRandomBy(33);
   //randstr为0的时候会出错,导致图片出不来,从新生产随机数
   while(randstr==0){
    randstr = RandomUtils.buildIntRandomBy(33);
   }
   rand.append(ustr.substring(randstr -1, randstr));
  }
  OutputStream out = response.getOutputStream();
  ImageCode.WriteImage(rand.toString(),out);
  session.setAttribute("rand",rand.toString());
  return null;
 }
 

}

页面:
   <input type="text"  name="verifyCode"  style="width:100px" maxlength="32">
<img src="image.do?rand = Math.random()"  alt="点击图更换图片" width="51" height="23" align="absbottom" id="verImg" onclick="nchangeImg();" style="cursor:hand "/>     
sturts.confix:
<action path="/image" type="gdhb.portal.action.ImageAction"/>
提交后处理:
  String verifyCode = this.getFormElementString(form, "verifyCode", "");
  if(!verifyCode.equals(request.getSession().getAttribute("rand"))){
   request.setAttribute(Constants.EXCEPTION_DEFAULT_KEY,"对不起,验证码有误,请重新填写!");
   return actionMapping.findForward("loginforward");

posted on 2007-05-30 11:08 五味子 阅读(394) 评论(0)  编辑  收藏 所属分类: 产生验证码例子

导航

<2025年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

统计

留言簿

随笔分类

文章分类

文章档案

搜索

最新评论