我是java / java servlet的新手。我需要表单的simpleCaptcha,使用html和javaservlet作为代码。参考http://simplecaptcha.sourceforge.net/extending.html

Captcha captcha = new Captcha.Builder(200, 50)
    .addText()
    .addBackground()
    .addNoise()
    .gimp()
    .addBorder()
    .build(); // Required.

为了在html上创建验证码,我应该将这段代码放在哪里(java servlet)?

非常感谢你。

最佳答案

为了扩展SimpleCaptcha并自定义您的验证码,我的理解是您必须创建自己的HttpServlet(也许可以扩展SimpleCaptchaServlet)。为此,我建议下载source code并查看SimpleCaptchaServletStickyCaptchaServlet。这是doGet()SimpleCaptchaServlet方法的样子:

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    Captcha captcha = new Captcha.Builder(_width, _height)
        .addText()
        .addBackground(new GradiatedBackgroundProducer())
        .gimp()
        .addNoise()
        .addBorder()
        .build();

    CaptchaServletUtil.writeImage(resp, captcha.getImage());

    req.getSession().setAttribute(NAME, captcha);
}

这应该是不言自明的:创建自己的servlet,并将自定义的Captcha Builder代码放入doGet()方法中。然后,按照Installing部分的说明进行操作,但是不要使用其servlet之一,而是在web.xml中声明您的servlet。最后,打包/部署您的应用程序。在examples下的源代码分发中捆绑了一个示例。如果您需要有关Web应用程序的结构,依赖关系和打包的更多指南,请查看。

08-07 23:21