2011-07-05 17 views
2

こんにちは、
私はGWT-Ext 2.0.3を使用しています。私は私のプロジェクトでSimpleCaptchaを実装しました。パネルをリロードするときにcaptchaイメージをリフレッシュすることができません.ImplemetCaptchaにsimplecaptcha-1.2.1.jarファイルを使用しています。
GWT-Ext 2.0.3でCaptchaを実装する

  • キャプチャ画像を表示するサーブレットを作成しました。
  • 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); 
    

    それは新しいキャプチャイメージ私は、ブラウザからページを更新するたびに表示します。しかし、フォームパネルをリロードすると画像が表示されません。


    誰も私を助けることができますか?

    +0

    使用reCAPTCHAの、それはこれよりもより安全になる "タイムスタンプ" を追加してみてください。 – Mikey

    答えて

    0

    Image captchaImage = new Image("/SimpleCaptcha.jpg?" + Math.floor(Math.random()*100)); 
    
    関連する問題