《Java Web 應(yīng)用程序設(shè)計(jì)立體化教程》第8章綜合實(shí)例+充電站管理系統(tǒng)_第1頁(yè)
《Java Web 應(yīng)用程序設(shè)計(jì)立體化教程》第8章綜合實(shí)例+充電站管理系統(tǒng)_第2頁(yè)
《Java Web 應(yīng)用程序設(shè)計(jì)立體化教程》第8章綜合實(shí)例+充電站管理系統(tǒng)_第3頁(yè)
《Java Web 應(yīng)用程序設(shè)計(jì)立體化教程》第8章綜合實(shí)例+充電站管理系統(tǒng)_第4頁(yè)
《Java Web 應(yīng)用程序設(shè)計(jì)立體化教程》第8章綜合實(shí)例+充電站管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

8綜合實(shí)例充電站管理系統(tǒng)8.1背景知識(shí)--

Spring簡(jiǎn)介2004年,SpringFramework1.0正式發(fā)布Spring是一個(gè)輕量級(jí)控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架Spring是Java企業(yè)版(JavaEnterpriseEdition,JEE,也稱J2EE)的輕量級(jí)代替品,Spring為企業(yè)級(jí)Java開(kāi)發(fā)提供了一種相對(duì)簡(jiǎn)單的方法,用簡(jiǎn)單的Java對(duì)象(PlainOldJavaObject,POJO)實(shí)現(xiàn)了EJB的功能8.1背景知識(shí)--

Spring產(chǎn)生的初衷(1)JAVAEE開(kāi)發(fā)應(yīng)該更加簡(jiǎn)單;(2)使用接口而不是使用類,是更好的編程習(xí)慣;(3)為JavaBean提供了一個(gè)更好的應(yīng)用配置框架;(4)更多地強(qiáng)調(diào)面向?qū)ο蟮脑O(shè)計(jì);(5)盡量減少不必要的異常捕捉;(6)使應(yīng)用程序更加容易測(cè)試。8.1背景知識(shí)--

Spring能力(1)最完善的輕量級(jí)核心框架;(2)通用的事務(wù)管理抽象層;(3)JDBC抽象層;(4)靈活的MVCWeb應(yīng)用框架。8.1背景知識(shí)--

SpringBoot從本質(zhì)上說(shuō),SpringBoot就是SpringSpringBoot把你從復(fù)雜的配置工作中解放出來(lái),從而可以聚焦于項(xiàng)目開(kāi)發(fā)本身。有了SpringBoot,可以很容易創(chuàng)建一個(gè)Spring框架的項(xiàng)目,而幾乎不用進(jìn)行Spring配置8.1背景知識(shí)--

IntelliJIDEA介紹IntelliJIDEA,是Java編程語(yǔ)言開(kāi)發(fā)的集成環(huán)境IntelliJ

IDEA在業(yè)界被公認(rèn)為最好的Java開(kāi)發(fā)工具智能代碼助手、代碼自動(dòng)提示、重構(gòu)、J2EE支持…8.2創(chuàng)建一個(gè)SpringBoot項(xiàng)目(1)

8.2創(chuàng)建一個(gè)SpringBoot項(xiàng)目(2)

8.2創(chuàng)建一個(gè)SpringBoot項(xiàng)目(3)

Group:組織名,對(duì)應(yīng)Java包的結(jié)構(gòu)Artifact:項(xiàng)目唯一標(biāo)識(shí),對(duì)應(yīng)項(xiàng)目名稱,要求全小寫字母。由于我們實(shí)踐的項(xiàng)目是充電站管理系統(tǒng),所以我們使用名稱cdzType:項(xiàng)目類型,此處不需要修改,保持MavenProject即可Packaging:打包類型,默認(rèn)打包成Jar文件即可JavaVersion:JDK版本Language:開(kāi)發(fā)語(yǔ)言,默認(rèn)選中JAVA即可Version:初始項(xiàng)目版本Description:項(xiàng)目描述,里面用一句話簡(jiǎn)短的介紹下項(xiàng)目Name:項(xiàng)目名稱,我們使用名稱CdzSystemPackage:包名,默認(rèn)由Group+Artifact組合而成8.2創(chuàng)建一個(gè)SpringBoot項(xiàng)目(4)

8.3

項(xiàng)目結(jié)構(gòu)8.3

項(xiàng)目結(jié)構(gòu)

--

啟動(dòng)類在項(xiàng)目中,src為項(xiàng)目代碼目錄,SpringInitializr為我們?cè)赾dz包里默認(rèn)創(chuàng)建了一個(gè)CdzSystemApplication文件,這是Spring的啟動(dòng)執(zhí)行類:@SpringBootApplicationpublicclassCdzSystemApplication{publicstaticvoidmain(String[]args){SpringApplication.run(CdzSystemApplication.class,args);}}8.3

項(xiàng)目結(jié)構(gòu)

--

Spring注解注解是JDK5.0引入的一種代碼注釋說(shuō)明機(jī)制,注解一般有以下三類作用:格式檢查:告訴編譯器信息,比如被@Override標(biāo)記的方法如果不是父類的某個(gè)方法,IDE會(huì)報(bào)錯(cuò);減少配置:運(yùn)行時(shí)動(dòng)態(tài)處理,得到注解信息,實(shí)現(xiàn)代替配置文件的功能;比如@SpringBootApplication,代表被注解的類是一個(gè)Spring啟動(dòng)類。減少重復(fù)工作:比如@Autowired,它可以幫我們對(duì)被注解的元素自動(dòng)完成裝配,我們會(huì)在后面使用時(shí)詳細(xì)說(shuō)明。8.4項(xiàng)目設(shè)計(jì)--代碼層級(jí)設(shè)計(jì)resources目錄暫時(shí)只存放配置文件pertieswebapp存放用jsp和js編寫的前端頁(yè)面代碼java目錄存放我們用java語(yǔ)言寫的代碼,我們大多數(shù)后臺(tái)邏輯代碼都存放在此處。8.5登錄功能開(kāi)發(fā)(1)開(kāi)發(fā)一個(gè)登錄功能,我們需要開(kāi)發(fā)以下三部分:數(shù)據(jù)庫(kù)新增一個(gè)用戶表user,用來(lái)存儲(chǔ)用戶的用戶名,密碼webapp目錄中開(kāi)發(fā)登錄對(duì)應(yīng)的jsp頁(yè)面java目錄下開(kāi)發(fā)用戶表數(shù)據(jù)庫(kù)設(shè)計(jì)對(duì)應(yīng)的登錄邏輯后臺(tái)代碼,用來(lái)響應(yīng)用戶的登錄行為。8.5登錄功能開(kāi)發(fā)(2)--用戶表數(shù)據(jù)庫(kù)設(shè)計(jì)user表中新增三個(gè)字段即可滿足我們需求:id作為自增主鍵user_name作為用戶名,因?yàn)橛脩裘话銥樽址?,所以我們字段的類型設(shè)置為VARCHAR,長(zhǎng)度設(shè)置為32即可password作為用戶密碼,用戶密碼一般也是字符串,所以類型同樣設(shè)置為VARCHAR。8.5登錄功能開(kāi)發(fā)(3)--新增login.jsp創(chuàng)建目錄page,然后在page目錄下新建一個(gè)login.jsp文件。打開(kāi)perties配置文件,在其中添加以下幾行:spring.mvc.view.prefix=/page/spring.mvc.view.suffix=.jspspring.http.encoding.force=truespring.http.encoding.charset=UTF-8spring.http.encoding.enabled=trueserver.tomcat.uri-encoding=UTF-88.5登錄功能開(kāi)發(fā)(4)--SpringController在Spring框架中,DispatcherServlet負(fù)責(zé)分發(fā)請(qǐng)求到控制器Controller處理。Controller負(fù)責(zé)接收用戶請(qǐng)求,Controller收到用戶請(qǐng)求后,經(jīng)過(guò)一定處理后,將處理結(jié)果返回給對(duì)應(yīng)View進(jìn)行顯示。Spring定義一個(gè)Controller非常簡(jiǎn)單,在這個(gè)類上添加一個(gè)注解@Controller即可。8.5登錄功能開(kāi)發(fā)(5)--響應(yīng)登錄請(qǐng)求的Controller我們?cè)贛ainController上面添加了@Controller說(shuō)明這個(gè)類是一個(gè)Spring的Controller?,F(xiàn)在MainController就可以響應(yīng)用戶的請(qǐng)求。方法loginPage添加了一個(gè)注解@RequestMapping。

這個(gè)被注解的方法將響應(yīng)用戶的login請(qǐng)求。在方法中,我們直接返回了一個(gè)字符串login,這里的意思是說(shuō),將login.jsp頁(yè)面返回給用戶。8.5登錄功能開(kāi)發(fā)(6)--頁(yè)面發(fā)起登錄行為我們可以將loginName和loginPassword兩個(gè)input的中數(shù)據(jù)傳遞給后臺(tái)的/api/login接口。一旦后臺(tái)處理成功,我們可以在success函數(shù)中,根據(jù)后臺(tái)返回的結(jié)果,進(jìn)行相應(yīng)的處理。8.5登錄功能開(kāi)發(fā)(7)--創(chuàng)建User類User表的字段和表結(jié)構(gòu)一一對(duì)應(yīng),并添加對(duì)應(yīng)的getter和setter方法。8.5登錄功能開(kāi)發(fā)(8)--JdbcTemplateJdbcTemplate是Spring提供的,為了提供訪問(wèn)數(shù)據(jù)庫(kù)能力的類。JdbcTemplate為我們提供了以下方法:update方法,新增、修改、刪除數(shù)據(jù)庫(kù)數(shù)據(jù)queryForObject方法,讀取匹配的單條數(shù)據(jù)query方法,讀取匹配到的數(shù)據(jù)庫(kù)的一組數(shù)據(jù)8.5登錄功能開(kāi)發(fā)(9)--創(chuàng)建UserService

UserService添加了@Service注解,這個(gè)注解的意思是,UserService是一個(gè)業(yè)務(wù)層組件,用于提供具體的業(yè)務(wù)功能,比如我們這里新增的login函數(shù)。8.5登錄功能開(kāi)發(fā)(10)--后臺(tái)處理登錄行為兩個(gè)參數(shù):name和password,而且這兩個(gè)參數(shù)上都添加了注解@RequestParam。這個(gè)注解的含義是說(shuō)明這兩個(gè)參數(shù)是由前端接口傳遞來(lái)的。也就是跟我們?cè)陧?yè)面?zhèn)鬟f的name和password兩個(gè)參數(shù)是一一對(duì)應(yīng)的。8.6注冊(cè)頁(yè)面開(kāi)發(fā)(1)8.6注冊(cè)頁(yè)面開(kāi)發(fā)(2)--注冊(cè)接口開(kāi)發(fā)8.7上傳下載文件(1)8.7上傳下載文件(2)–下載接口getParameterMap函數(shù)可以獲取傳遞來(lái)的參數(shù),我們從中取出name參數(shù),作為文件名,然后直接打開(kāi)files目錄下對(duì)應(yīng)的文件并返回即可。8.7上傳下載文件(3)–上傳接口函數(shù)的參數(shù)類型為MultipartFile,是因?yàn)槲覀冊(cè)陧?yè)面上傳時(shí),指定了提交類型為"multipart/form-data"

。8.8

發(fā)送郵件(1)Sun公司提供了JavaMail用來(lái)實(shí)現(xiàn)郵件發(fā)送,但是配置煩瑣。Spring中提供了JavaMailsender用來(lái)簡(jiǎn)化郵件配置SpringBoot則提供了MailSenderAutoConfiguration對(duì)郵件的發(fā)送做了進(jìn)一步簡(jiǎn)化。8.8發(fā)送郵件(2)–參數(shù)配置8.8發(fā)送郵件(3)–后臺(tái)接口8.8發(fā)送郵件(4)–發(fā)送頁(yè)面8.9繪制圖表(1)ECharts是百度開(kāi)源的純Javascript圖表庫(kù)支持折線圖(區(qū)域圖)、柱狀圖(條狀圖)、散點(diǎn)圖(氣泡圖)、K線圖、餅圖(環(huán)形圖)、雷達(dá)圖(填充雷達(dá)圖)、和弦圖、力導(dǎo)向布局圖、地圖、儀表盤、漏斗圖、事件河流圖等12類圖表同時(shí)提供標(biāo)題,詳情氣泡、圖例、值域、數(shù)據(jù)區(qū)域、時(shí)間軸、工具箱等7個(gè)可交互組件,支持多圖表、組件的聯(lián)動(dòng)和混搭展現(xiàn)。8.9繪制圖表(2)8.10導(dǎo)出Excel(1)Java解析、生成Excel比較有名的框架有Apachepoi、jxl他們都存在一個(gè)嚴(yán)重的問(wèn)題就是非常的耗內(nèi)存poi有一套SAX模式的API可以一定程度的解決一些內(nèi)存溢出的問(wèn)題,但POI還是有一些缺陷,比如07版Excel解壓縮以及解壓后存儲(chǔ)都是在內(nèi)存中完成的,內(nèi)存消耗依然很大EasyExcel是一個(gè)基于Java的簡(jiǎn)單、省內(nèi)存的讀寫Excel的開(kāi)源項(xiàng)目。8.10導(dǎo)出Excel(2)使用EasyExcel生成Excel十分簡(jiǎn)單,我們下面只使用一行代碼就可以實(shí)現(xiàn)該功能: EasyExcel.write("users.xlsx",User.class).sheet("用戶列表").doWrite(userService.getUsers());小結(jié)通過(guò)本章的學(xué)習(xí),我們依次介紹了:如何將用戶在瀏覽器的請(qǐng)求映射到JSP頁(yè)面中如何將頁(yè)面中的ajax請(qǐng)求傳遞到后臺(tái)java代碼中如何通過(guò)JDBC對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查文件的上傳下載發(fā)送郵件繪制圖表導(dǎo)出Excel。后續(xù)的開(kāi)發(fā)習(xí)題(1)為用戶增加上次登錄時(shí)間、登錄次數(shù)屬性,在每次用戶登錄后記錄。為用戶增加姓名屬性,要求注冊(cè)時(shí)填入。為用戶增加郵箱屬性,要求注冊(cè)時(shí)填入。在注冊(cè)時(shí),檢查郵箱未被使用,如已經(jīng)被使用,報(bào)錯(cuò)提醒用戶。在登錄頁(yè)面增加找回密碼功能。點(diǎn)擊找回密碼,跳轉(zhuǎn)到新頁(yè)面,用戶輸入自己的郵箱后,系統(tǒng)將用戶密碼發(fā)送到用戶的郵箱。參考8.7

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論