在servlet的doGet() 创建了HttpClient实例,并且调用了生成验证码的方法,在输出到页面,一切都没问题,问题是验证码都是由同一个HttpClient实例生成的,也就是不同机器获取的验证码都是这个HttpClient生成的,所以这台机器的验证码,另一台机器也能用,这个就麻烦了,请问要怎么处理
private JWMIS_Login jw ;
/**
*
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//创建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中验证。
只是感觉这样可以,希望楼下有更好的答案。