当前位置: 代码迷 >> Java Web开发 >> 在servlet生成验证码的有关问题
  详细解决方案

在servlet生成验证码的有关问题

热度:324   发布时间:2016-04-14 21:33:30.0
在servlet生成验证码的问题
在servlet的doGet() 创建了HttpClient实例,并且调用了生成验证码的方法,在输出到页面,一切都没问题,问题是验证码都是由同一个HttpClient实例生成的,也就是不同机器获取的验证码都是这个HttpClient生成的,所以这台机器的验证码,另一台机器也能用,这个就麻烦了,请问要怎么处理
private JWMIS_Login jw ;
/**
 * 
 */
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExceptionIOException {
//创建httpclient实例
jw = new JWMIS_Login();

// 获取验证码的byte[]
                        byte[] b = jw.getValidateCode();

ByteArrayInputStream in = new ByteArrayInputStream(b);    
BufferedImage image222  = ImageIO.read(in); 
        
    
     response.setHeader("Pragma", "No-cache"); 
     response.setHeader("Cache-Control", "no-cache"); 
     response.setDateHeader("Expires", 0); 
      
     ServletOutputStream output = null; 
     try { 
     output = response.getOutputStream(); 
     // 输出图象到页面 
     ImageIO.write(image222, "JPEG", output); 
     } catch (IOException e) { 
     e.printStackTrace(); 
     }finally{
         output.close();
     } 
    

}

------解决思路----------------------
能不能把生成的验证码数据放到session中,在session中验证。

只是感觉这样可以,希望楼下有更好的答案。
  相关解决方案