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>
這樣由于路徑發生了變化,就重新發起請求,輕松實現點擊更新圖片內容。
在生成驗證碼的時候這個方法很管用,因為當頁面顯示的驗證碼看不清時,應該提供方法重新獲取一張。