門永不過時的編程語言——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ǔ)課程內(nèi)容涉及:Java開發(fā)介紹、Java數(shù)組、Java面向?qū)ο蟆⒊S没A(chǔ)類、集合、IO流、多線程、異常、反射。
第一部分:Java開發(fā)介紹
第二部分:Java數(shù)組
第三部分:Java面向?qū)ο?/strong>
第四部分:異常
第五部分:集合
第六部分:IO流
第七部分:多線程
JavaWeb課程內(nèi)容涉及:HTML5課程、CSS3、JavaScript、MySQL使用、JDBC連接池、Servlet、JSP、AJAX、jQuery、Bootstrap。
第一部分:HTML5
第二部分:CSS3
第三部分:JavaScript
第四部分:MySQL使用 或oracle數(shù)據(jù)庫
第五部分:JDBC連接池
第六部分:Servlet
第七部分:JSP
第八部分:AJAX
Java框架課程內(nèi)容涉及:Spring、Spring MVC、MyBatis、SVN、Git、Maven
第一部分:Spring
第二部分:Spring MVC
第三部分:MyBatis
第四部分:SVN 和git
第五部分:Maven
第六部分
項目開發(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 是新一代 Java 模板引擎,支持 HTML 原型,以直接被瀏覽器打開,此時瀏覽器會忽略未定義的 Thymeleaf 標簽屬性,展示 thymeleaf 模板的靜態(tài)頁面效果。當在應用程序中會動態(tài)地替換掉頁面設(shè)置的標簽屬性。
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 類:
hymeleaf 模板引擎支持多種表達式:
這里變量表達式和其他模板類似,可以使用表達式具有以下功能:
變量表達式與 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:片段名,Thymeleaf 通過 th:fragment 聲明定義代碼塊,即:th:fragment="fragmentname"。id:HTML 的 id 選擇器,使用時要在前面加上 # 號,不支持 class 選擇器。
我們可以將公共頁面片段抽取出來,存放到一個獨立的頁面中,然后在其他頁面使用片段表達式進行引用。
hymeleaf 在抽取和引入公共頁面片段時,還可以進行參數(shù)傳遞。
我們可以通過以下 2 種方式,將參數(shù)傳入到被引用的頁面片段中:
在使用參數(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>
Thymeleaf 還提供了大量的 th 屬性,這些屬性可以直接在 HTML 標簽中使用。
th屬性標簽還有很多,這里只是用了一小部分,有興趣的可以在網(wǎng)上搜索一下。
我們知道,在web開發(fā)時,一般都會涉及到很多的靜態(tài)資源,如js、image、css文件等。
SpringBoot的默認的靜態(tài)文件目錄是:
所以,一般我們只需要把靜態(tài)文件放入前面的四個任一一個即可,默認都放在static下,對應路徑即為:src/main/resources/static。
而從官網(wǎng)文檔里也可以獲悉,為了實現(xiàn)動態(tài)的html,SpringBoot是通過模版引擎進行頁面結(jié)果渲染的,目前(1.5.15)版本的提供默認配置的模版引擎主要為:
對于模版引擎而言,SpringBoot默認存放模版文件的路徑為src/main/resources/templates,當然也可以通過配置文件進行修改。因為不同的模版引擎對應的配置屬性不一樣,所以在具體講解模版引擎時,會提到。
當然了,也可以使用jsp,但官方已經(jīng)不建議使用JSP,本文也會講解下SpringBoot下JSP的支持,畢竟有很多老的項目還在使用JSP。
知道以上的一些默認配置和知識點后,就可以進行模版引擎的集成使用了。本章主要講解常用的FreeMarker、Thymeleaf及JSP三個的集成和使用,其他的基本用法都一樣,就是各模版引擎的語法的差異了。
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是一個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 就能查看頁面了。
雖然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/
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。