新增依賴jar包
建立資料庫jfinal和user表。
drop
table
ifexists
`user`;
create
table
`user` (
`userid`
int(11) not
null auto_increment,
`username`
varchar(255) not
null,
`password`
varchar(255) not
null,
primary
key (`userid`)
) engine=innodb auto_increment=4
default charset=utf8;
在根目錄下新建dbc.properties並配置資料庫連線資訊。
定義user實體
package cn.tgb.model;
import com.jfinal.plugin.activerecord.model;
/** * 繼承model即可,無需getter、setter方法,無需annotation,無需xml
* @author wyq
* */
public class
user
extends
model
service層
package cn
.tgb.service;
import com.jfinal.plugin.activerecord.db;
import com.jfinal.plugin.activerecord.record;
public class userservice
return
false;}/*
* 使用者登入
controller層
package cn.tgb.controller;
import cn.tgb.interceptor.authinterceptor;
import cn.tgb.service.userservice;
import cn.tgb.validator.loginvalidator;
import com.jfinal.aop.before;
import com.jfinal.core.controller;
public
class
usercontroller
extends
controller else}/*
* 使用者註冊
*/public
void
register()else
}@before(authinterceptor.class)
public
void
editpersoninfo()
}
我們可以看到,在login()上使用了校驗***loginvalidator,editpersoninfo()使用了許可權***authinterceptor。
validator是jfinal提供的校驗元件。其核心是interceptor,所以用法和interceptor類似,繼承validator類即可。下面是loginvalidator 的業務處理:
package cn.tgb.validator;
import com.jfinal.core.controller;
import com.jfinal.validate.validator;
public
class
loginvalidator
extends
validator
@override
protected
void
handleerror(controller c)
}
很顯然這裡用到的是方法***,只在editpersoninfo()方法時才執行。根據使用者登入成功時在session裡設定了乙個變數flag,當值為true時才可以執行。
package cn.tgb.interceptor;
import com.jfinal.aop.interceptor;
import com.jfinal.aop.invocation;
import com.jfinal.core.controller;
public
class
authinterceptor
implements
interceptor
}
接下來看一下全域性***。
//interceptor可以對方法進行攔截,並在方法前後新增切面,實現aop的核心目標
public
class
globalactioninterceptor
implements
interceptor
}
傳統aop實現需要引入大量繁雜而多餘的概念,例如aspect、advice、joinpoint、poincut、introduction等等,並且需要引入ioc容器並配合大量的xml或者annotation來進行元件裝配。學習成本高、開發效率低,而且影響系統效能。
jfinal採用極速化的aop設計,專注aop最核心目標,將概念減少到極致。僅有三個概念:intercepor、before和clear,而且無需引入ioc和繁雜的xml。
到這裡,乙個完整的jfinal入門程式就完成了。jfinal一般適用於小型專案的快速開發。以上就是我對jfinal的理解,如有不正之處,歡迎來交流~~
3分鐘入門 python 二
3分鐘入門python 二 繼上文,相信大家都已經能寫基本的python程式了。還有兩個基本的概念希望大家能了解,之後我會分享更高階點的python內容了。上文答案 print 1900 400 400 1900 只用上文提及的內容 print 1900 400 0 使用取餘操作符直觀感受程式 判斷...
3分鐘帶你入門 for迴圈語句
列表迴圈 列表for迴圈 用於將一組命令執行已知的次數 基本語法格式 for variable in docommand command done 或者for variable in a b c docommand command done 舉例說明 以下有多種語法,所包含的次數是已知的 for v...
Git 3分鐘輕鬆入門
2.建 3.推 4.刪 5.合 常見問題集 git可以簡單理解為3角陣關係 git clone git 直接在master改不符合規範,先建個自己的分支,b引數直接切到該分支git checkout b test csdn在test csdn分支加了 提交到本地倉庫防止丟失git add git c...