0

我正在使用SimpleCaptcha

我的 web.xml 看起来像这里的那个:

<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>

我添加了一个刷新,但我的观点就像这个 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它时,它仍然会打印相同的验证码(基于我理解的用户会话)

我也在使用 spring-mvc 和 spring-webflow。

4

2 回答 2

3

使用nl.captcha.servlet.SimpleCaptchaServlet而不是nl.captcha.servlet.StickyCaptchaServlet解决问题

因为StickyCaptchaServlet使用 SessionId 创建图像而SimpleCaptchaServlet不是

于 2013-10-11T10:30:11.347 回答
0

我想你可以试试: $("#captcha_image").attr("src", "/captcha_generator.jsp"); 而不是: $("#captcha_image").attr("src", "/captcha?"+d.getTime());

于 2014-07-28T15:21:24.743 回答