今日技術 : velocity與EasyCodehtml
一.模板技術
> 數據+模板 = 文本java
1.1 認識模板技術git
1.1.1 經常使用的模板技術
- freemarker 默認後綴 .ftl
- ==velocity== 默認後綴 .vmapache
1.1.2 模板技術的做用
- 動態頁面靜態化(網站)
- **代碼生成器**
- 郵件或者短信等的模板安全
1.2 velocity的簡單學習session
1.2.1 引入velocity框架
```ide
<dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.6</version> </dependency>
```
1.2.2 準備模板 - hello.vm
> 具體的語法你們能夠去查看文檔
```學習
## 我是一個沒有感情的註釋 ${username},你好啊!!! ##對象數據獲取 ##$!:有數據就顯示,沒有數據就不顯示(其它的沒有數據會直接顯示) ${employee.username} ====== ${employee.age} $employee.username ====== $employee.age $!employee.username ====== $!employee.age ##設置變量 #set($person = "湯木") $person ## 集合 #set($names=["湯母", "吉瑞", "肉絲"]) <p>$names.get(1)</p> <ul> #foreach($l in $names) <li>$l</li> #end </ul>
```
### 1.2.3 velocity的Java代碼
```
//測試默認就是項目根目錄
//數據 + 模板 = 輸入文本
測試
@Test public void testHelloFile()throws Exception{ //建立一個Velocity引擎 VelocityEngine ve = new VelocityEngine(); //獲到到相應的模板 Template template = ve.getTemplate("template/hello.vm","UTF-8"); //建立模板上下文(裝數據的東西) VelocityContext velocityContext = new VelocityContext(); velocityContext.put("username","二狗"); //準備對象,放到上下文中 Employee employee = new Employee(); employee.setUsername("三狗"); // employee.setAge(45); velocityContext.put("employee",employee); //準備輸出的位置 FileWriter fileWriter = new FileWriter("template/hello.html"); //數據 + 模板 = 輸入文本 template.merge(velocityContext, fileWriter); fileWriter.close(); }
```
二.代碼生成器
- easycode:就是一個idea的插件
- 使用的前提是你會velocity
- 官方文檔 : https://gitee.com/makejava/EasyCode/wikis/pages?sort_id=725069&doc_id=166248
- 生成的文件位置,生成文件內容
三.權限的認識
- 兩種權限:登陸認證,權限認證
3.1 登陸認證
3.1.1 步驟
1. 若是沒有登陸這我的是遊客
2. 遊客會拿到令牌(用戶名和密碼)進行登陸
3. 先驗證用戶名(若是錯誤報帳號錯誤)
4. 驗證密碼(若是錯誤會報驗證錯誤)
5. 還有一種是其它錯誤【異常,通常是你的代碼有問題】
6. 登陸成功就會把當前用戶放到session中
3.1.2 注意點
- 之前是HttpSession,只能用於Web項目 -> shiro框架
- 密碼驗證安全性很重要 -> MD5
3.1 權限認證
- 用戶(n)-角色(n)-權限【資源】(n)
總結 : 定義固定內容,對填充數據定義變量取值填充,最終生成文本
擴展:實現中