📄 stickycaptchaservlet.java
字号:
package nl.captcha.servlet;import static nl.captcha.Captcha.NAME;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import nl.captcha.Captcha;/** * Builds a 200x50 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. * * @author <a href="mailto:james.childers@gmail.com">James Childers</a> * */public class StickyCaptchaServlet extends HttpServlet { 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(200, 50) .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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -