我记录

验证码

掷鸡蛋者 发布于 2015/9/20 21:18 浏览: 438 回复: 0 所在分类:java

1、pom 依赖

        <!--验证码-->

        <dependency>

            <groupId>com.github.axet</groupId>

            <artifactId>kaptcha</artifactId>

            <version>0.0.9</version>

        </dependency>

2、控制器

@Controller

@RequestMapping(value = "/captcha")

public class CaptchaController extends KaptchaExtend {

    @RequestMapping(value = "/img.jpg", method = RequestMethod.GET)

    public void captcha(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        super.captcha(req, resp);

    }

    @RequestMapping(value = "/form", method = RequestMethod.GET)

    public ModelAndView form(@RequestParam(value = "error", required = false) boolean failed,

                             HttpServletRequest request) {

        ModelAndView model = new ModelAndView("captcha/form");

        return model;

    }

    @RequestMapping(value = "/validate", method = RequestMethod.POST)

    public ModelAndView validate(@RequestParam(value = "email", required = true) String email,

                                 @RequestParam(value = "password", required = true) String password, HttpServletRequest request) {

        ModelAndView model = new ModelAndView("captcha/validate");

        if (email.isEmpty())

            throw new RuntimeException("email empty");

        if (password.isEmpty())

            throw new RuntimeException("empty password");

        String captcha = request.getParameter("captcha");

        if (!captcha.equals(getGeneratedKey(request)))

            throw new RuntimeException("bad captcha");

        return model;

    }

}

3、视图页面

      <form method="post" action="<%= request.getContextPath() %>/captcha/validate">

        <table>

          <tr>

            <td colspan="2">验证码测试</td>

          </tr>

          <tr>

            <td>email</td><td><input name="email" type="text" /></td></tr>

          <tr>

            <td>password</td><td><input name="password" type="text" /></td></tr>

          <tr>

            <td>验证码</td>

            <td>

              <div><img src="<%= request.getContextPath() %>/captcha/img.jpg"></div>

              <div><input type="text" name="captcha"></div>

            </td>

          </tr>

          <tr>

            <td colspan="2">

              <button type="submit">提交</button>

            </td>

          </tr>

        </table>

      </form> 


掷鸡蛋者2015/9/20 21:18

留下脚印

踩一脚
copyright © 用微博记录这个时代 2010-2014
Powered by 我记录2.0
Processed in 0 seconds, 0 queries