Image属性src是可以设置servlet的路径的,即从servlet获取图片
如在web.xml配置:
<servlet>
<servlet-name>GenerateImageServlet</servlet-name>
<servlet-class>org.bruce.util.GenerateImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GenerateImageServlet</servlet-name>
<url-pattern>/getImage</url-pattern>
</servlet-mapping>
然后在jsp文件中:
<img src="getImage" title="美女">
这样就可以得到图片了。这里就给动态获取图片提供了一种途径。
比如可以通过src="getImage?id=1000"就可以得到1000号图片。
还可以采用JavaScript onclick方法刷新图片,网上参考资料采用如下方法:
<img src="valid" onclick="regenerate(this)" title="美女">
<script>
function regenerate(this){
this.src="getImage";
}
</script>
尝试后,发现这种方法无效,由于路径没变,浏览器不会重新发起请求。这里我采用另外一种技巧:
<script type="text/javascript">
function regenerate(obj){var date=new Dat();
obj.src="getImage?time=" + date.getSeconds();
}
</script>
这样由于路径发生了变化,就重新发起请求,轻松实现点击更新图片内容。
在生成验证码的时候这个方法很管用,因为当页面显示的验证码看不清时,应该提供方法重新获取一张。