JFinal框架——简单验证码

Posted Etoiles

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JFinal框架——简单验证码相关的知识,希望对你有一定的参考价值。

 JFinal很强大,验证码的实现也很简单,在此记录一下。

1 <form action="/jfinal_verification/user/login1" method="post"> 
2     用户名:<input type="text" name="name"/></br> </br>
3     密码:&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="password" name="password"/> </br> 
4     <!-- 设置name为code 用于后台接收验证码并进行校验--> 
5     验证码:<input type="text" name="code"/>
6     <!-- 获取验证码并设置点击事件,点击之后获取新的验证码 -->
7     <img  src="/jfinal_verification/user/code" onclick="this.src=\'/jfinal_verification/user/code?x=\'+Math.random()"></br></br>
8     <button type="submit">登陆</button> 
9 </form> 

 

  • JAVA

  JFinal 2.0

   生成验证码

1 public void code() {
2       CaptchaRender img = new CaptchaRender(RANDOM_CODE_KEY);     
3       render(img);
4 }

   验证正确与否

 1 private static final String RANDOM_CODE_KEY = "1";    
 2 public void login1(){
 3     String inputRandomCode = getPara("inputRandomCode");
 4     boolean loginSuccess = CaptchaRender.validate(this, inputRandomCode.toUpperCase(), RANDOM_CODE_KEY);
 5     if (loginSuccess) {
 6          renderText("successful");
 7     }else{
 8          renderText("failed");
 9     }
10}

   JFinal 2.2

     生成验证码     

1 public void code(){ 
2         renderCaptcha(); 
3 } 

     验证正确与否     

 1 private static final String FORM_ITEM_CODE = "inputRandomCode";
 2 
 3 public void login1(){ 
 4     String result = ""; 
 5     //验证验证码 
 6     if(validateCaptcha(FORM_ITEM_CODE)){ 
 7         result = "验证成功"; 
 8     }
 9     else{ 
10         result = "验证失败"; 
11     } 
12     renderText(result); 
13 } 

 

  • 点击刷新
1 onclick="this.src=\'/user/code?x=\'+Math.random()">

 

  • 注意
  1.  两种方法的jar包不同,第二种方法的jar包必须用 jfinal-2.2 及以上,低版本不包含renderCaptcha();
  2.  若使用jetty,则需要导入jetty-server-8.1.8.jar;若使用Tomcat,则不能加入这个jar包,否则会冲突,并且在action或者src中需要加上你的项目名称,不能直接写方法名。
  • 效果图

   

  

 

以上是关于JFinal框架——简单验证码的主要内容,如果未能解决你的问题,请参考以下文章

JFinal Web开发学习验证码验证和注册细节

Jfinal框架是什么框架?适用于什么项目呢?

Jfinal尝鲜(填坑)

jfinal框架教程-学习笔记

国人开发的一套MVC框架

JFinal实现伪静态