stickycaptchaservlet.java
来自「一套用于生成各种图形验证码的库(Java)」· Java 代码 · 共 75 行
JAVA
75 行
package nl.captcha.servlet;import static nl.captcha.Captcha.NAME;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;/** * Builds a 200x50 (default) CAPTCHA and attaches it to the session. This is intended to help 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 * <code>CaptchaServletUtil.NAME</code> will force a new <code>Captcha</code> * to be added to the session. * * <p>Image height and width may be customized by adding the "heigh" and "width" init-params to * web.xml. For example:</p> * <p><pre> <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></pre></p> * * @author <a href="mailto:james.childers@gmail.com">James Childers</a> * */public class StickyCaptchaServlet extends SimpleCaptchaServlet { private static final long serialVersionUID = 40913456229L; /** * Write out the CAPTCHA image stored in the session. If not present, * generate a new <code>Captcha</code> and write out its image. * */ @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { HttpSession session = req.getSession(); Captcha captcha; if (session.getAttribute(NAME) == null) { captcha = new Captcha.Builder(_width, _height) .addText() .gimp() .addBorder() .addNoise() .addBackground() .build(); session.setAttribute(NAME, captcha); CaptchaServletUtil.writeImage(resp, captcha.getImage()); return; } captcha = (Captcha) session.getAttribute(NAME); CaptchaServletUtil.writeImage(resp, captcha.getImage()); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?