整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          2020最新版適合JAVA小白的學習線路(純干貨),你值得擁有

          門永不過時的編程語言——Java 軟件開發(fā),你贊同嗎?

          我贊同。

          小編用數(shù)據(jù)說話



          Java編程語言占比:

          據(jù)官方數(shù)據(jù)統(tǒng)計,在全球編程語言工程師的數(shù)量上,Java編程語言以1000萬的程序員數(shù)量位居首位。 而且很多軟件的開發(fā)都離不開Java編程,因此其程序員的數(shù)量最多。而在以Java編程為核心的開發(fā)領(lǐng)域中,javaEE程序員的需求量10年來一直居于首位!

          Java工程師就業(yè):

          1.通過各大招聘網(wǎng)站統(tǒng)計,全國海量公司都在招聘Java開發(fā)工程師

          2.北京Java開發(fā)工程師平均薪資,即16788元

          3.全國Java開發(fā)薪資前三:北京 上海 廣州


          以上2個數(shù)據(jù),你心動了,心動就趕快行動起來吧。5G時代,萬物互聯(lián),更多的終端會使用安卓系統(tǒng),隨之而來的Java開發(fā)必然是會越來越火爆,所以學習Java是必要且必須的,下邊就是總結(jié)了下Java的學習路線。

          包括Java基礎(chǔ)課程、JavaWeb和java框架課程。

          你可能會好奇,你不是講java學習路線嗎?為啥還有前端web的部分,我只能告訴你,

          我們可不能閉門造車,很多公司學后端還要學前端的

          前端現(xiàn)在很多也了解后端的技術(shù)棧的,你想我們?nèi)ヒ粋€網(wǎng)站,最先接觸的,最先看到的是啥?

          沒錯就是前端,在大學你要是找不到專門的前端同學,去做系統(tǒng)肯定也要自己頂一下前端的


          當然,有些公司是不寫的,例如:


          俗話技多不壓身,為了方便要寫的小伙伴,咱還是一起介紹了~


          Java基礎(chǔ)課程

          Java基礎(chǔ)課程內(nèi)容涉及:Java開發(fā)介紹、Java數(shù)組、Java面向?qū)ο蟆⒊S没A(chǔ)類、集合、IO流、多線程、異常、反射。

          第一部分:Java開發(fā)介紹

          1. DOS常用命令
          2. JVM、JRE、JDK之間的關(guān)系
          3. Java開發(fā)環(huán)境的搭建:安裝JDK,配置環(huán)境變量
          4. Java入門程序(Java的開發(fā)流程)
          5. Java的注釋,標識符、標識符的命名規(guī)范
          6. Java基本數(shù)據(jù)類型
          7. 變量和常量的定義及初始化
          8. Java的運算符
          9. 運算符的優(yōu)先級
          10. Java分支語句之if…else
          11. 循環(huán)的嵌套
          12. 方法的定義
          13. 方法的形參和實參
          14. 方法的遞歸調(diào)用

          第二部分:Java數(shù)組

          1. Java 數(shù)組的定義
          2. Java 數(shù)組的聲明
          3. 數(shù)組的優(yōu)勢與局限
          4. 數(shù)組的遍歷訪問(普通循環(huán),增強for循環(huán))
          5. 數(shù)組元素的順序查找
          6. 數(shù)組元素的冒泡法排序
          7. Arrays工具類的使用
          8. 二維數(shù)組

          第三部分:Java面向?qū)ο?/strong>

          1. 面向?qū)ο笤O(shè)計思想
          2. 面向?qū)ο蟮姆治雠c設(shè)計
          3. Java與面向?qū)ο?/li>
          4. 類中成員變量的定義與意義
          5. 構(gòu)造方法的定義和調(diào)用
          6. 面向?qū)ο蟮姆庋b特性
          7. 局部變量和成員變量的作用域問題
          8. 靜態(tài)屬性、靜態(tài)方法、靜態(tài)代碼塊
          9. 面向?qū)ο蟮睦^承特性
          10. 繼承中構(gòu)造方法的細節(jié)
          11. 面向?qū)ο蟮亩鄳B(tài)特性
          12. 抽象方法與抽象類
          13. 接口

          第四部分:異常

          1. 異常的概念
          2. 異常的分類
          3. 異常的理解
          4. 常見異常介紹
          5. 運行時異常
          6. 編譯時異常
          7. 運行和編譯異常區(qū)別
          8. 異常的處理方式之捕獲異常
          9. 異常的處理方式之拋出異常
          10. 異常的處理方式之斷點調(diào)試
          11. 斷點調(diào)試之引導運行步驟
          12. 自定義異常
          13. 異常關(guān)鍵字處理
          14. 關(guān)鍵字執(zhí)行流程
          15. 異常總結(jié)

          第五部分:集合

          1. 集合的概念和作用
          2. 集合和數(shù)組的區(qū)別
          3. 集合框架體系介紹
          4. 集合框架之Collection接口
          5. ArrayList和LinkedList的方法使用
          6. ArrayList和LinkedList各自的工作原理分析原理分析
          7. 使用多種方式遍歷集合
          8. HashSet和LinkedHashSet各自的工作原理分析
          9. 集合框架之Map接口
          10. 泛型的使用
          11. Collections工具類的使用

          第六部分:IO流

          1. File類的作用
          2. File類中常用方法的使用介紹
          3. 使用File類操作文件和文件夾
          4. 相對路徑和絕對路徑的介紹
          5. IO流的概念和工作原理
          6. IO流的分類
          7. 文件流的使用
          8. 轉(zhuǎn)換流的使用
          9. 緩沖流的使用
          10. 對象流的使用
          11. 內(nèi)存流的使用
          12. 使用不同的流實現(xiàn)文件內(nèi)容的拷貝

          第七部分:多線程

          1. 進程和線程的介紹
          2. 進程和線程之間的區(qū)別與聯(lián)系
          3. 線程實現(xiàn)方式之繼承自Thread類
          4. 線程實現(xiàn)方式之實現(xiàn)Runnable接口
          5. 線程實現(xiàn)方式之線程池
          6. 線程的生命周期
          7. 線程中常用方法的使用

          JavaWeb課程

          JavaWeb課程內(nèi)容涉及:HTML5課程、CSS3、JavaScript、MySQL使用、JDBC連接池、Servlet、JSP、AJAX、jQuery、Bootstrap。

          第一部分:HTML5

          1. html概述
          2. html基本標簽
          3. 圖片標簽
          4. 超鏈接標簽
          5. 表格標簽
          6. 無序列表標簽
          7. 有序列表標簽
          8. 定義列表標簽
          9. div標簽
          10. 語義化標簽
          11. 表單標簽

          第二部分:CSS3

          1. CSS3簡介和用途
          2. CSS3書寫規(guī)范
          3. CSS3基本語法
          4. CSS3三種使用方式
          5. 標簽選擇器
          6. Id選擇器
          7. Class選擇器
          8. 屬性選擇器
          9. 層次選擇器
          10. 文字、文本屬性
          11. 背景、列表屬性
          12. 尺寸、顯示、輪廓屬性
          13. 浮動、定位屬性
          14. 盒子模型
          15. CSS3高級屬性

          第三部分:JavaScript

          1. JavaScript概述
          2. JavaScript發(fā)展史
          3. JavaScript組成
          4. 數(shù)據(jù)類型
          5. 運算符
          6. 分支語句
          7. 循環(huán)語句
          8. 系統(tǒng)函數(shù)、自定義函數(shù)、匿名函數(shù)
          9. 常見事件
          10. 數(shù)組、字符串、日期對象
          11. 正則表達式
          12. BOM對象:window、history、location
          13. DOM概念
          14. DOM操作:創(chuàng)建、修改內(nèi)容、刪除
          15. Css樣式操作

          第四部分:MySQL使用 或oracle數(shù)據(jù)庫

          1. 數(shù)據(jù)庫簡介
          2. MySQL的安裝與使用
          3. MySQL客戶端和服務(wù)器配置
          4. 用戶權(quán)限管理
          5. DDL創(chuàng)建數(shù)據(jù)庫和表
          6. 約束與外鍵
          7. DML實現(xiàn)添加、修改、刪除數(shù)據(jù)
          8. 聚合函數(shù)、日期函數(shù)等
          9. DQL簡單查詢
          10. 排序、分組、篩選
          11. 多表查詢
          12. 子查詢
          13. in和exists關(guān)鍵字
          14. 分頁查詢
          15. Mysql SQL語句優(yōu)化介紹

          第五部分:JDBC連接池

          1. JDBC概述
          2. JDBC使用步驟
          3. Connection、Statement、ResultSet接口
          4. 使用JDBC 完成數(shù)據(jù)庫DML操作
          5. PreparedStatement對象
          6. 大數(shù)據(jù)的操作
          7. 批量處理與元數(shù)據(jù)
          8. 事務(wù)處理
          9. 隔離級別
          10. 自定義連接池
          11. DBCP、C3p0連接池
          12. DBUtis工具類
          13. QueryRunner
          14. 自定義結(jié)果集處理
          15. 連接池知識總結(jié)

          第六部分:Servlet

          1. Tomcat與Eclipse的集成開發(fā)
          2. 什么是Servlet
          3. Servlet的進化史
          4. Servlet的優(yōu)化過程
          5. Servlet中應用的多線程概念
          6. Servlet接收客戶端請求信息
          7. Servlet響應客戶端信息
          8. Servlet的生命周期
          9. 重定向?qū)懛?/li>
          10. 轉(zhuǎn)發(fā)寫法
          11. 轉(zhuǎn)發(fā)和重定向區(qū)別
          12. HttpServletRequest獲取中文亂碼問題
          13. HttpServletResponse響應中文亂碼問題
          14. Servlet路徑映射問題
          15. Servlet多路徑映射

          第七部分:JSP

          1. 什么是JSP
          2. JSP的內(nèi)置對象
          3. 透析JSP的本質(zhì)
          4. JSTL+EL
          5. MVC介紹
          6. 分層的重要性
          7. Web工程中事務(wù)實現(xiàn)
          8. Session的使用
          9. Cookie的使用
          10. web工程中連接池的使用
          11. 實現(xiàn)用戶的自動登錄
          12. 文件的上傳、下載
          13. 過濾器、 監(jiān)聽器
          14. 反射、注解、泛型
          15. 綜合案例練習

          第八部分:AJAX

          1. Ajax技術(shù)背景
          2. Ajax技術(shù)的理解
          3. XMLHttpRequest使用步驟
          4. XMLHttpRequest GET/POST的區(qū)別
          5. 同步請求&異步請求
          6. 同步請求&異步請求的區(qū)別
          7. Ajax獲取不同的返回值類型
          8. Ajax使用原生JavaScript和Jquery的區(qū)別
          9. Ajax響應狀態(tài)處理
          10. JSON語法
          11. Java JSON 解析
          12. Java JSON 生成
          13. Java JSON 第三方工具快速解析
          14. JavaScript JSON轉(zhuǎn)換
          15. Jquery JSON轉(zhuǎn)換

          Java框架課程

          Java框架課程內(nèi)容涉及:Spring、Spring MVC、MyBatis、SVN、Git、Maven

          第一部分:Spring

          1. 框架原理介紹
          2. 框架環(huán)境搭建
          3. 快速入門
          4. 創(chuàng)建Bean的方式及實現(xiàn)原理
          5. Bean種類
          6. Bean生命周期
          7. Bean的作用域
          8. Bean的注值方式
          9. 整合Junit測試
          10. 注解裝配Bean
          11. 注解裝配Bean
          12. AOP思想、原理解剖
          13. AOP底層JDK動態(tài)代理
          14. AOP編程
          15. AspectJ介紹及實現(xiàn)AOP開發(fā)
          16. 事務(wù)
          17. Web項目集成Spring

          第二部分:Spring MVC

          1. Spring MVC 概述
          2. 使用 @RequestMapping映射請求
          3. 請求處理方法簽名概述
          4. 處理方法簽名詳細說明
          5. 使用 HttpMessageConverter
          6. 處理模型數(shù)據(jù)
          7. 數(shù)據(jù)綁定流程剖析
          8. 數(shù)據(jù)格式化
          9. 數(shù)據(jù)校驗
          10. 視圖和視圖解析器
          11. 處理方法的數(shù)據(jù)綁定
          12. 視圖和視圖解析器
          13. 文件上傳下載
          14. JSON處理
          15. 攔截器

          第三部分:MyBatis

          1. MyBatis數(shù)據(jù)框架介紹
          2. MyBatis對比Hibernate框架
          3. MyBatis配置、查詢數(shù)據(jù)
          4. MyBatis全局配置文件
          5. MyBatis全局配置文件元素詳細介紹
          6. Mapper映射文件
          7. MyBatis兩種開發(fā)方式
          8. MyBatis中別名配置
          9. MyBatis # 和 $ 拼接參數(shù)區(qū)別
          10. 關(guān)聯(lián)查詢,動態(tài)sql
          11. MyBatis緩存機制、整合ehcache
          12. MyBatis二級緩存處理
          13. MyBatis、Spring、SpringMVC整合
          14. 分頁插件
          15. MyBatis逆向工程

          第四部分:SVN 和git

          1. SVN簡介
          2. SVN和Git對比
          3. SVN服務(wù)器搭建
          4. SVN創(chuàng)建倉庫
          5. SVN創(chuàng)建用戶以及分配權(quán)限
          6. SVN簽出、提交、更新
          7. Eclipse整合svn插件
          8. Idea整合svn插件
          9. 使用SVN更新提交
          10. SVN倉庫分析
          11. SVN協(xié)同修改&沖突解決
          12. SVN代碼整合注意事項
          13. SVN權(quán)限管理
          14. SVN數(shù)據(jù)回滾
          15. TortoiseSVN

          第五部分:Maven

          1. Maven環(huán)境搭建
          2. Maven構(gòu)建項目
          3. Maven本地倉庫配置
          4. Maven中央倉庫配置
          5. Maven基本概念
          6. Maven基本命令介紹
          7. Maven于Eclipse整合
          8. Maven于Idea整合
          9. Maven創(chuàng)建web工程
          10. pom.xml、依賴管理
          11. 坐標、依賴、生命周期等
          12. Eclipse下的Maven使用
          13. Maven中 繼承、聚合
          14. Maven構(gòu)建SSH/SSM應用
          15. 自動部署、持續(xù)集成、持續(xù)部署

          第六部分

          項目開發(fā)

          項目沒做過?沒關(guān)系,160個項目實戰(zhàn)案例、一套學習Java的資料,如果你想在技術(shù)上提升自己,可以關(guān)注我喲,私信發(fā)送領(lǐng)取資料或者在評論區(qū)留下自己的聯(lián)系方式,有時間記得幫我點下轉(zhuǎn)發(fā)讓更多的人看到哦

          hymeleaf 是一款用于渲染 XML/XHTML/HTML5 內(nèi)容的模板引擎。它與 JSP,Velocity,F(xiàn)reeMaker 等模板引擎類似,也可以輕易地與 Spring MVC 等 Web 框架集成。與其它模板引擎相比,Thymeleaf 最大的特點是,即使不啟動 Web 應用,也可以直接在瀏覽器中打開并正確顯示模板頁面 。

          Thymeleaf 簡介

          Thymeleaf 是新一代 Java 模板引擎,支持 HTML 原型,以直接被瀏覽器打開,此時瀏覽器會忽略未定義的 Thymeleaf 標簽屬性,展示 thymeleaf 模板的靜態(tài)頁面效果。當在應用程序中會動態(tài)地替換掉頁面設(shè)置的標簽屬性。

          Thymeleaf 的特點

          • 動靜結(jié)合:Thymeleaf 既可以直接使用瀏覽器打開,查看頁面的靜態(tài)效果,也可以通過 Web 應用程序進行訪問,查看動態(tài)頁面效果。
          • 開箱即用:Thymeleaf 提供了 Spring 標準方言以及一個與 SpringMVC 完美集成的可選模塊,可以快速地實現(xiàn)表單綁定、屬性編輯器、國際化等功能。
          • 多方言支持:它提供了 Thymeleaf 標準和 Spring 標準兩種方言,可以直接套用模板實現(xiàn) JSTL、 OGNL 表達式;必要時,開發(fā)人員也可以擴展和創(chuàng)建自定義的方言。
          • 與 SpringBoot 完美整合:SpringBoot 為 Thymeleaf 提供了的默認配置,并且還為 Thymeleaf 設(shè)置了視圖解析器,因此 Thymeleaf 可以與 Spring Boot 完美整合。

          Thymeleaf 通過在 html 標簽中,增加額外屬性來達到“模板+數(shù)據(jù)”的展示方式

          IDEA新創(chuàng)建HTML文件是這樣的:

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Title</title>
          </head>
          <body>
          
          </body>
          </html>

          要想使用 Thymeleaf 之前,首先要在頁面的 html 標簽中聲明名稱空間,可避免編輯器出現(xiàn) html 驗證錯誤。

          xmlns:th="http://www.thymeleaf.org"

          Thymeleaf 作為一種模板引擎,它擁有自己的語法規(guī)則。Thymeleaf 語法分為以下 2 類:

          • 標準表達式語法
          • th 屬性

          標準表達式語法

          hymeleaf 模板引擎支持多種表達式:

          • 變量表達式:${...}
          • 選擇變量表達式:*{...}
          • 鏈接表達式:@{...}
          • 國際化表達式:#{...}
          • 片段引用表達式:~{...}

          變量表達式

          這里變量表達式和其他模板類似,可以使用表達式具有以下功能:

          • 獲取對象的屬性和方法
          • 使用內(nèi)置的基本對象,獲取內(nèi)置對象的屬性,調(diào)用內(nèi)置對象的方法。如上下文對象ctx,上下文語言環(huán)境locale,請求對象HttpServletRequest,響應對象HttpServletResponse等。
          • 使用內(nèi)置的工具對象,如字符串工具對象,數(shù)字工具對象,日期工具對象等。

          選擇變量表達式

          變量表達式與 th:object 的配合使用。當使用 th:object 存儲一個對象后,我們可以在其后代中使用選擇變量表達式(*{...})獲取該對象中的屬性,其中,“*”即代表該對象。

          <div th:object="${session.user}" >
              <p th:text="*{userName}">userName</p>
          </div>

          鏈接表達式

          鏈接都可以用鏈接表達式 (@{...}),鏈接表達式的形式結(jié)構(gòu)如下: 無參請求:@{/xxx} 有參請求:@{/xxx(k1=v1,k2=v2)}。

          <link rel="stylesheet" th:href="@{/style.css}"></link>

          國際化表達式

          消息表達式一般用于國際化的場景。

          th:text="#{message}"

          片段引用表達式

          片段引用表達式用于在模板頁面中引用其他的模板片段,該表達式支持以下 2 中語法結(jié)構(gòu):

          • 推薦:~{templatename::fragmentname}
          • 支持:~{templatename::#id}

          templatename:模版名,fragmentname:片段名,Thymeleaf 通過 th:fragment 聲明定義代碼塊,即:th:fragment="fragmentname"。id:HTML 的 id 選擇器,使用時要在前面加上 # 號,不支持 class 選擇器。

          我們可以將公共頁面片段抽取出來,存放到一個獨立的頁面中,然后在其他頁面使用片段表達式進行引用。

          hymeleaf 在抽取和引入公共頁面片段時,還可以進行參數(shù)傳遞。

          我們可以通過以下 2 種方式,將參數(shù)傳入到被引用的頁面片段中:

          • 模板名::選擇器名或片段名(參數(shù)1=參數(shù)值1,參數(shù)2=參數(shù)值2)
          • 模板名::選擇器名或片段名(參數(shù)值1,參數(shù)值2)

          在使用參數(shù)時可以使用變量表達式使用這些參數(shù)。

          <!--使用 var1 和 var2 聲明傳入的參數(shù),并在該片段中直接使用這些參數(shù) -->
          <div th:fragment="fragment-name(var1,var2)" id="fragment-id">
              <p th:text="'參數(shù)1:'+${var1} + '-------------------參數(shù)2:' + ${var2}">...</p>
          </div>

          th 屬性

          Thymeleaf 還提供了大量的 th 屬性,這些屬性可以直接在 HTML 標簽中使用。

          th屬性標簽還有很多,這里只是用了一小部分,有興趣的可以在網(wǎng)上搜索一下。

          我們知道,在web開發(fā)時,一般都會涉及到很多的靜態(tài)資源,如js、image、css文件等。

          SpringBoot的默認的靜態(tài)文件目錄是:

          • /static
          • /public
          • /resources
          • /META-INF/resources



          所以,一般我們只需要把靜態(tài)文件放入前面的四個任一一個即可,默認都放在static下,對應路徑即為:src/main/resources/static。

          而從官網(wǎng)文檔里也可以獲悉,為了實現(xiàn)動態(tài)的html,SpringBoot是通過模版引擎進行頁面結(jié)果渲染的,目前(1.5.15)版本的提供默認配置的模版引擎主要為:

          • FreeMarker
          • Groovy
          • Thymeleaf
          • Mustache



          對于模版引擎而言,SpringBoot默認存放模版文件的路徑為src/main/resources/templates,當然也可以通過配置文件進行修改。因為不同的模版引擎對應的配置屬性不一樣,所以在具體講解模版引擎時,會提到。

          當然了,也可以使用jsp,但官方已經(jīng)不建議使用JSP,本文也會講解下SpringBoot下JSP的支持,畢竟有很多老的項目還在使用JSP。

          知道以上的一些默認配置和知識點后,就可以進行模版引擎的集成使用了。本章主要講解常用的FreeMarker、Thymeleaf及JSP三個的集成和使用,其他的基本用法都一樣,就是各模版引擎的語法的差異了。


          FreeMarker支持


          FreeMarker是一款模板引擎,即一種基于模板和要改變的數(shù)據(jù),并用來生成輸出文本(HTML網(wǎng)頁,電子郵件,配置文件,源代碼等)的通用工具。



          1、POM依賴

          <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId></dependency>


          2、application.properties配置加入相關(guān)配置:

          # 緩存配置 開發(fā)階段應該配置為false 因為經(jīng)常會改spring.freemarker.cache=false # 模版后綴名 默認為ftlspring.freemarker.suffix=.html # 文件編碼spring.freemarker.charset=UTF-8 # 模版加載的目錄spring.freemarker.template-loader-path=classpath:/templates/ # 配置# locale 該選項指定該模板所用的國家/語言選項# number_format 指定格式化輸出數(shù)字的格式:currency、# boolean_format 指定兩個布爾值的語法格式,默認值是true,false# date_format,time_format,datetime_format 定格式化輸出日期的格式# time_zone 設(shè)置格式化輸出日期時所使用的時區(qū)# 數(shù)字 千分位標識spring.freemarker.settings.number_format=,##0.00


          詳細的配置可參見

          org.springframework.boot.autoconfigure.freemarker.FreeMarkerProperties類,或者直接IDE直接配置文件點擊查看。


          3、編寫控制層

          FreemarkerController.kava:

          //因為是返回頁面 所以不能是@RestController@Controller@RequestMapping("/freemarker")public class FreemarkerController { //正常和springmvc設(shè)置返回參數(shù)是意義的用法了 @GetMapping("/map") public String index(String name,ModelMap map) { map.addAttribute("name", name); map.addAttribute("from", "lqdev.cn"); //模版名稱,實際的目錄為:src/main/resources/templates/freemarker.html return "freemarker"; } @GetMapping("/mv") public String index(String name,ModelAndView mv) { mv.addObject("name", name); mv.addObject("from", "lqdev.cn"); //模版名稱,實際的目錄為:src/main/resources/templates/freemarker.html return "freemarker"; }}


          4、編寫模版文件

          freemarker.html:

          <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" /> <title>freemarker簡單示例</title></head><body><h1>Hello Freemarker</h1><!-- 這里注意:默認變量都不能為null的, 當參數(shù)為null時,會發(fā)生異常的 --><!-- 這里后面幾個"!"避免下,這樣就是空白了 --><h2>名稱:${name!},來自:${from}</h2></body></html>

          5、啟動應用

          訪問:http://127.0.0.1:8080/freemarker/mv?name=oKong 或者 http://127.0.0.1:8080/freemarker/map?name=oKong 就能查看頁面了。



          關(guān)于一些Freemarker的語法這里就不說明了,大家可到官網(wǎng)查看下:https://freemarker.apache.org/docs/index.html


          Thymeleaf支持


          Thymeleaf是一個XML/XHTML/HTML5模板引擎,可用于Web與非Web環(huán)境中的應用開發(fā)。Thymeleaf的主要目標在于提供一種可被瀏覽器正確顯示的、格式良好的模板創(chuàng)建方式,因此,也可以用作靜態(tài)建模。你可以使用它創(chuàng)建經(jīng)過驗證的XML與HTML模板,相對于編寫邏輯或代碼,開發(fā)者只需將標簽屬性添加到模板中即可。接下來,這些標簽屬性就會在DOM(文檔對象模型)上執(zhí)行預先制定好的邏輯。

          1、pom依賴

          <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>


          2、application.properties配置加入相關(guān)配置:

          # 啟用緩存:建議生產(chǎn)開啟spring.thymeleaf.cache=false# 建議模版是否存在spring.thymeleaf.check-template-location=true# Content-Type 值spring.thymeleaf.content-type=text/html # 是否啟用spring.thymeleaf.enabled=true# 模版編碼spring.thymeleaf.encoding=UTF-8# 應該從解析中排除的視圖名稱列表(用逗號分隔)spring.thymeleaf.excluded-view-names= # 模版模式spring.thymeleaf.mode=HTML5 # 模版存放路徑spring.thymeleaf.prefix=classpath:/templates/ # 模版后綴spring.thymeleaf.suffix=.html


          3、編寫控制層

          ThymeleafController.java:

          @Controller@RequestMapping("/thymeleaf")public class ThymeleafController { // 正常和springmvc設(shè)置返回參數(shù)是意義的用法了 @GetMapping("/map") public String index(String name, ModelMap map) { map.addAttribute("name", name); map.addAttribute("from", "lqdev.cn"); // 模版名稱,實際的目錄為:src/main/resources/templates/thymeleaf.html return "thymeleaf"; } @GetMapping("/mv") public ModelAndView index(String name) { ModelAndView mv = new ModelAndView(); mv.addObject("name", name); mv.addObject("from", "lqdev.cn"); // 模版名稱,實際的目錄為:src/main/resources/templates/thymeleaf.html mv.setViewName("thymeleaf"); return mv; }}

          4、編寫模版文件

          thymeleaf.html

          <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" /> <title>thymeleaf簡單示例</title></head><body><h1>Hello thymeleaf</h1><!-- 這里注意:拼接時 變量要單獨使用${param},其他的常量使用''包裹 --><h2 th:text="'名稱:'+${name}+',來自:'+${from}">默認值</h2></body></html>

          5、啟動應用

          訪問:http://127.0.0.1:8080/thymeleaf/mv?name=oKong 或者 http://127.0.0.1:8080/thymeleaf/map?name=oKong 就能查看頁面了。



          JSP支持


          雖然SpringBoot官方已經(jīng)不建議使用jsp了,但在一些老的項目遷移時,jsp的支持是毋庸置疑的,所以還是需要兼容的。。

          1、pom依賴加入

          <!-- spring boot 內(nèi)置tomcat jsp支持 --><dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId></dependency><dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId></dependency>


          2、application.properties配置加入相關(guān)配置:

          #jsp 支持spring.mvc.view.suffix=.jspspring.mvc.view.prefix=/WEB-INF/jsp/


          3、編寫控制層

          JspController.java

          @Controller@RequestMapping("/jsp")public class JspController { //正常和springmvc設(shè)置返回參數(shù)是意義的用法了 @GetMapping("/map") public String index(String name,ModelMap map) { map.addAttribute("name", name); map.addAttribute("from", "lqdev.cn"); //模版名稱,實際的目錄為:src/main/webapp/jsp/index.html return "index"; } @GetMapping("/mv") public ModelAndView index(String name) { ModelAndView mv = new ModelAndView(); mv.addObject("name", name); mv.addObject("from", "lqdev.cn"); //模版名稱,實際的目錄為:src/main/webapp/jsp/index.html mv.setViewName("index"); return mv; }}

          4、webapp/WEB-INF/jsp目錄下編寫jsp文件

          <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charsetUTF-8"><title>jsp示例</title></head><body><h1>Hello Jsp</h1><h2 >名稱:${name},來自:${from}</h2></body></html>


          5、啟動應用

          訪問:http://127.0.0.1:8080/jsp/mv?name=oKong 或者 http://127.0.0.1:8080/jsp/map?name=oKong 就能查看頁面了。



          注意:在使用spring-boot-maven-plugin打包插件時,默認情況下打包的應用時訪問不了jsp目錄文件的,需要把版本修改為1.4.2.RELEASE版本,同時pom中加入resource配置:

          <resources> <!-- 打包時將jsp文件拷貝到META-INF目錄下 --> <resource> <!-- 指定resources插件處理哪個目錄下的資源文件 --> <directory>src/main/webapp</directory> <!--注意此次必須要放在此目錄下才能被訪問到 --> <targetPath>META-INF/resources</targetPath> <includes> <include>**/**</include> </includes> </resource><!-- <resource> 指定resources插件處理哪個目錄下的資源文件 <directory>src/main/resources/static</directory> 注意此次必須要放在此目錄下才能被訪問到 <targetPath>META-INF/resources/static</targetPath> <includes> <include>**/**</include> </includes> </resource> --> <resource> <directory>src/main/resources</directory> <includes> <include>**/**</include> </includes><!-- <excludes> <exclude>src/main/resources/static/**</exclude> </excludes> --> <filtering>false</filtering> </resource></resources>


          總結(jié)

          本章主要是講解利用模版引擎進行動態(tài)頁面實現(xiàn)功能,對于有此需要的同學可以去看下使用的模版引擎的相關(guān)使用教程,這里就不多加闡述。目前互聯(lián)網(wǎng)上很多大佬都有springboot系列教程,如有雷同,請多多包涵,若文中有所錯誤之處,還望提出!需要看SpringBoot系列前十四章需移步本人主頁瀏覽。

          SpringBoot系列:

          SpringBoot深入解析——基于 Docker 的簡單部署(十四)

          https://www.toutiao.com/i6597750315166990862/

          SpringBoot深入解析——基于 Postman的RESTful 接口測試(十五)

          https://www.toutiao.com/i6597747954155520515/


          主站蜘蛛池模板: 亚洲中文字幕丝袜制服一区 | 国模无码人体一区二区| 亚洲av乱码一区二区三区按摩| 国产精品无码不卡一区二区三区| 性色av闺蜜一区二区三区| 中文字幕乱码人妻一区二区三区| 日韩精品一区二区三区中文精品| 亚洲伦理一区二区| 国产精品视频第一区二区三区| 99久久精品国产高清一区二区| 香蕉久久ac一区二区三区| 少妇一晚三次一区二区三区| 国产SUV精品一区二区四| 韩国精品一区视频在线播放| 国产在线精品一区二区高清不卡 | 美女毛片一区二区三区四区| 97精品一区二区视频在线观看| 日本香蕉一区二区三区| 亚洲无线码在线一区观看| 无码av免费毛片一区二区| 极品少妇伦理一区二区| 无码精品人妻一区二区三区人妻斩| 日本一区二三区好的精华液| 大屁股熟女一区二区三区| 国产精品久久久久久麻豆一区| 一区二区三区波多野结衣| 人妻aⅴ无码一区二区三区| 国产一区韩国女主播| 日韩人妻无码一区二区三区久久| 国产女人乱人伦精品一区二区| 精品国产日产一区二区三区| 国产精品免费视频一区| 午夜福利av无码一区二区| 国产一区风间由美在线观看| 久久久久人妻一区二区三区| 精品伦精品一区二区三区视频 | 午夜爽爽性刺激一区二区视频| 国产精品区一区二区三在线播放| 波多野结衣精品一区二区三区 | 久久精品亚洲一区二区| 精品视频一区二区|