nl.captcha.servlet
Class StickyCaptchaServlet
java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
nl.captcha.servlet.StickyCaptchaServlet
All Implemented Interfaces: java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
public class StickyCaptchaServlet extends javax.servlet.http.HttpServlet
Builds a CAPTCHA and stores it in the session. This is intended to prevent
bots from simply reloading the page and getting new images until one is
generated which they can successfully parse. Removal of the session attribute
CaptchaServletUtil.NAME will force a new Captcha to
be added to the session. (Obviously, this is not a perfect solution as
session IDs can simply not be passed.)
The size of the image is by default 200x50. This can be customized using the
captcha-height and captcha-width init parameters in
web.xml.
By default the CAPTCHA will expire after 600000ms. This can be overridden
using the ttl init parameter, in milliseconds.
An example showing all parameters:
<servlet>
<servlet-name>StickyCaptcha</servlet-name>
<servlet-class>nl.captcha.servlet.StickyCaptchaServlet</servlet-class>
<init-param>
<param-name>captcha-width</param-name>
<param-value>400</param-value>
</init-param>
<init-param>
<param-name>captcha-height</param-name>
<param-value>200</param-value>
</init-param>
<init-param>
<param-name>ttl</param-name>
<param-value>900000</param-value>
</init-param>
</servlet>
Since the constructed image is a PNG the servlet mapping should be defined
something like this:
<servlet-mapping>
<servlet-name>StickyCaptcha</servlet-name>
<url-pattern>/stickyCaptcha.png</url-pattern>
</servlet-mapping>
Author:
James Childers
See Also: Serialized Form
Method Summary
void
doGet (javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Write out the CAPTCHA image stored in the session.
void
init (javax.servlet.ServletConfig config)
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service, service
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
StickyCaptchaServlet
public StickyCaptchaServlet ()
init
public void init (javax.servlet.ServletConfig config)
throws javax.servlet.ServletException
Specified by: init in interface javax.servlet.ServletOverrides: init in class javax.servlet.GenericServlet
Throws:
javax.servlet.ServletException
doGet
public void doGet (javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
throws javax.servlet.ServletException,
java.io.IOException
Write out the CAPTCHA image stored in the session. If not present,
generate a new Captcha and write out its image.
Overrides: doGet in class javax.servlet.http.HttpServlet
Throws:
javax.servlet.ServletException
java.io.IOException
Copyright © 2010-2011 James Childers. All Rights Reserved.