JFinal 3分鐘入門(續)

2021-07-12 00:00:24 字數 3630 閱讀 3181

新增依賴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...