2013-10-11 33 views
0

我使用SimpleCaptcha刷新SimpleCaptcha

我的web.xml看起來像一個here

<servlet> 
    <servlet-name>StickyCaptcha</servlet-name> 
    <servlet-class>nl.captcha.servlet.StickyCaptchaServlet</servlet-class> 
    <init-param> 
     <param-name>width</param-name> 
     <param-value>250</param-value> 
    </init-param> 
    <init-param> 
     <param-name>height</param-name> 
     <param-value>75</param-value> 
    </init-param> 
</servlet> 

<servlet-mapping> 
    <servlet-name>StickyCaptcha</servlet-name> 
    <url-pattern>/captcha</url-pattern> 
</servlet-mapping> 

而且我添加了一個更新,但我的看法就像this SO-answer描述:

<script type="text/javascript"> 
    function reloadCaptcha(){ 
     var d = new Date(); 
     $("#captcha_image").attr("src", "/captcha?"+d.getTime()); 
    } 
</script> 
    ... 
<img id="captcha_image" src="/captcha_generator.jsp" alt="captcha image" width="200" height="50"/> 
<img src="reload.jpg" onclick="reloadCaptcha()" alt="reload"width="40" height="40"/> 

但是當我按下刷新按鈕時,沒有任何反應。 還當我嘗試調用.../captcha?4324321它仍然打印相同的驗證碼(基於用戶會話我的理解它)

我還使用彈簧MVC和彈簧的Webflow。

回答

3

使用的nl.captcha.servlet.SimpleCaptchaServlet代替nl.captcha.servlet.StickyCaptchaServlet解決了這個問題

因爲StickyCaptchaServlet使用的SessionID創建圖像和SimpleCaptchaServlet

+0

短n準確答案。 +1讓我們的生活變得簡單:) –

0

我認爲,你可以嘗試: $( 「#captcha_image」)ATTR (「src」,「/captcha_generator.jsp」); 而不是: $(「#captcha_image」)。attr(「src」,「/ captcha?」+ d.getTime());