今天查看系统之前的代码,又发现了一个神奇的东西!发现实现点击验证码图片换验证码时,<image>的onclick里面做的就是改变<image>标签的src属性。
/** 刷新验证码 */
refreshImg : function(thiz) {
//thiz.src = 'captcha.jsp';
thiz.src = 'captcha.jsp?' + Math.round(Math.random() * 100000);
},
方法就是给url带一个随机数,这样每次点击验证码图片时,都会由于src改变而重新请求jsp。原先看别人写的验证码实现代码还真没注意到这个东西。
还有发现一个需要注意的东西,就是在jsp页面调用outputStream输出流输出时,要写着两行代码在最后out.clear(); out = pageContext.pushBody();“out”和"pageContext"都是jsp的内置对象,之所以要调用这两个方法是由于jsp container在处理完成请求后会调用releasePageContet方法释放所用的PageContext object,并且同时调用getWriter方法,由于getWriter方法与在jsp页面中使用流相关的getOutputStream方法冲突,所以会造成这种异常:
java.io.IOException: Stream closed
严重: Servlet.service() for servlet jsp threw exception。