基于Java的Web應用開發(fā)技術已成為目前Web開發(fā)的主流技術,作為一名Java程序員,到底要掌握什么技術才能完成一個JavaWeb項目呢?
一起學起來吧~
先放一張技術棧思維導圖:
什么是技術棧?
開發(fā)一個普通管理系統(tǒng),會用到:
SprinBoot+MyBatis+Spring+Mysql+Redis+RabbitMq+Nginx+Vue+Shiro+html+等等,這些技術合起來就可以稱為技術棧。
大致分為:前端、后端、中間件、數(shù)據(jù)庫和工具。
一、前端
1、JSP
JSP全稱Java Server Pages,是一種動態(tài)網頁開發(fā)技術。它使用JSP標簽在HTML網頁中插入Java代碼。
JSP本質上是一個Servlet,主要用于實現(xiàn)JavaWeb應用程序的用戶界面部分。
第1個 JSP 程序
out.println("Hello World!");
2、前端框架
DWZ、EasyUI、EXT、BootStrap、KendoUI都是基于基于HTML、CSS、JavaScript/jQuery的一些富文本客戶端UI框架,在當時簡直是后端開發(fā)人員的福音。
這些框架特點就是官網上提供了各種組件的使用方法,后端人員只要套到JSP頁面中,進行數(shù)據(jù)渲染即可。
這些UI框架風格基本已經固定,更適合開發(fā)一些管理類系統(tǒng),都包括:強大的數(shù)據(jù)源,通用的拖拉(Drag-and-Drop)功能,模板,和UI控件。
3、DWZ
是中國人自己開發(fā)的基于jQuery實現(xiàn)的Ajax RIA開源框架,設計目標是簡單實用,快速開發(fā),降低Ajax開發(fā)成本。
4、EasyUI
Easyui是一種基于jQuery的用戶界面插件集合,為創(chuàng)建現(xiàn)代化,互動,JavaScript應用程序,提供必要的功能。
使用Easyui你不需要寫很多代碼,你只需要通過編寫一些簡單HTML標記,就可以定義用戶界面,為網頁開發(fā)的時間和規(guī)模。
5、BootStrap
Bootstrap,來自Twitter,是目前很受歡迎的前端框架。Bootstrap是基于 HTML、CSS、JavaScript的,它簡潔靈活,使得Web開發(fā)更加快捷。
6、HTML
前端框架都是基于HTML的,所以你需要掌握Css、JavaScript、jquery基礎。
7、VUE框架
Vue是一種漸進式JavaScript框架,完美融合了第三方插件和UI組件庫,它和jQuery的區(qū)別在于,Vue無需開發(fā)人員直接操作DOM節(jié)點,就可以改變頁面渲染內容,在應用開發(fā)者具有一定的HTML、CSS、JavaScript的基礎上,能夠快速上手,開發(fā)出優(yōu)雅、簡潔的應用程序模塊。
二、后端
1、Struts
Struts是Apache基金會的一個開源項目,廣泛應用于大型互聯(lián)網企業(yè)、政府、金融機構等網站建設,并作為網站開發(fā)的底層模板使用。
一個是Stuts1 ,一個是Stuts2。技術方面,Stuts1有個核心控制器,但是只提供了一個接口,也就是execute,還要配置action、form之類的,很麻煩,所以依賴性比較強;
而Stuts2是針對攔截器開發(fā)的,也就是所謂的AOP思想,可以配置多個action,用起來比較方便,但是因為請求之前的攔截器有一些注入的操作,速度相對Stuts1來說慢一點。
2、Spring
Spring框架是個輕量級的Java EE框架。所謂輕量級,是指不依賴于容器就能運行的。
Spring以IoC、AOP為主要思想,其中IoC,Inversion of Control 指控制反轉或反向控制。在Spring框架中我們通過配置創(chuàng)建類對象,由Spring在運行階段實例化、組裝對象。AOP,Aspect Oriented Programming,面向切面編程,其思想是在執(zhí)行某些代碼前執(zhí)行另外的代碼,使程序更靈活、擴展性更好,可以隨便地添加、刪除某些功能。Servlet中的Filter便是一種AOP思想的實現(xiàn)。
Spring同時也是一個“一站式”框架,即Spring在JavaEE的三層架構[表現(xiàn)層(Web層)、業(yè)務邏輯層(Service層)、數(shù)據(jù)訪問層(DAO層)]中,每一層均提供了不同的解決技術。
3、持久層框架Mybatis
MyBatis是一款優(yōu)秀的持久層框架,它支持定制化SQL、存儲過程以及高級映射。它是輕量級持久層框架,由ibatis演化而來。它自動連接數(shù)據(jù)庫,將數(shù)據(jù)庫的結果集封裝到對象中POJO。
Mybatis它是輕量級持久層框架,由ibatis演化而來。它自動連接數(shù)據(jù)庫,將數(shù)據(jù)庫的結果集封裝到對象中POJO。
4、Spring Boot
Spring Boot基本上是Spring框架的擴展,它消除了設置Spring應用程序所需的XML配置,為更快,更高效的開發(fā)生態(tài)系統(tǒng)鋪平了道路。
5、分布式/微服務Spring Cloud
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎設施的開發(fā),如服務發(fā)現(xiàn)注冊、配置中心、消息總線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風格做到一鍵啟動和部署。
6、安全框架Shiro
Apache Shiro是一個開源的輕量級的Java安全框架,它提供身份驗證、授權、密碼管理以及會話管理等功能。相對于Spring Security, Shiro框架更加直觀、易用,同時也能提供健壯的安全性。
Shiro框架相比于Spring Security更加輕量級,但是它也提供了一些基礎的,能滿足日常開發(fā)所需的權限控制功能。
7、項目管理Maven
Maven是一個構建工具,這個構建工具能夠幫助你更好的管理包的依賴、還能夠為你實現(xiàn)項目的熱部署、還能為你運行所有的測試用例、還能夠為你項目的打包、發(fā)布、還能夠實現(xiàn)項目的多模塊構建。
8、服務器軟件Tomcat
Tomcat是由Java開發(fā)且符合JavaEE的Servlet規(guī)范的JSP服務器,是Apache的擴展,其主要特性如下:
1、主要用于解析JSP/Servlet,一般JAVA程序語言都需要Tomcat環(huán)境支持;
2、支持HTML靜態(tài)頁,但總體運行效率沒有Apache高;
3、內置了一個HTTP服務器用于支持靜態(tài)內容,可以通過Tomcat的配置管理工具實現(xiàn)與Apache整合。
Apache服務器是由C語言實現(xiàn)的,專門用來提供HTTP服務,具有簡單、速度快、性能穩(wěn)定特征優(yōu)勢,主要特性如下:
1、主要用于解析靜態(tài)文本,并發(fā)性能高,側重于HTTP服務;
2、不支持動態(tài)請求如:CGI、Servlet/JSP、PHP、ASP等語言;
3、可擴展性強,可以通過插件支持PHP語言,特定情況下可與Tomcat實現(xiàn)連通;
4、是目前全球用戶使用量最duo的Web服務器。
三、中間件
四、數(shù)據(jù)庫
常見的數(shù)據(jù)管理系統(tǒng)主要有:Oracle、Mysql、SQL Server、Access、TiDB。
這幾個數(shù)據(jù)庫優(yōu)缺點都比較明顯,大家可以在網上查詢下相關資料。