Реализация капчи в GWT-Ext 2.0.3 - PullRequest
2 голосов
/ 05 июля 2011

Привет всем,
Я использую GWT-Ext 2.0.3. Я реализовал SimpleCaptcha в своем проекте. Я не могу обновить изображение капчи при перезагрузке панели. Я использую файл simplecaptcha-1.2.1.jar для реализации капчи.

Я создал сервлет для отображения изображения капчи.
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import nl.captcha.Captcha;
import nl.captcha.backgrounds.GradiatedBackgroundProducer;
import nl.captcha.servlet.CaptchaServletUtil;
import nl.captcha.servlet.SimpleCaptchaServlet;

public class ExtendedCaptchaServlet  extends SimpleCaptchaServlet  {

    private static final long serialVersionUID = -3280477565969758716L;

    //@Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp)

    throws ServletException, IOException {

        HttpSession session = req.getSession();

        Captcha captcha = new Captcha.Builder(200, 50)

        .addText()

        .addBackground(new GradiatedBackgroundProducer()).addNoise()

        .addBorder()

        .build();

        session.setAttribute("captcha", captcha);
        CaptchaServletUtil.writeImage(resp, captcha.getImage());

    }
}

Запись в web.xml
<servlet>
    <servlet-name>SimpleCaptcha</servlet-name>
    <servlet-class> com.server.test.ExtendedCaptchaServlet 
    </servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>SimpleCaptcha</servlet-name>
    <url-pattern>/SimpleCaptcha.jpg</url-pattern>
</servlet-mapping>

Моя панель GWT
FormPanel formPanel = new FormPanel();
Image captchaImage = new Image("/SimpleCaptcha.jpg");
formPanel.add(captchaImage);

Отображает новое изображение капчи каждый раз, когда я обновляю страницу из браузера. Но при перезагрузке панели формы изображение не отображается.


Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 26 июля 2012

попробуйте добавить "отметку времени"

Image captchaImage = new Image("/SimpleCaptcha.jpg?" + Math.floor(Math.random()*100));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...