前言
Java web是一種基于B\S(瀏覽器\服務(wù)器)架構(gòu)的網(wǎng)絡(luò)應(yīng)用程序的技術(shù)實(shí)現(xiàn)。這種結(jié)構(gòu)的Web應(yīng)用程序被大量的企業(yè)級應(yīng)用所采用。隨著Web應(yīng)用程序的規(guī)模不斷擴(kuò)大球订,傳統(tǒng)的Web開發(fā)模式無法滿足日漸復(fù)雜的業(yè)務(wù)需要后裸,所以出現(xiàn)了更加合理更加先進(jìn)的MVC開發(fā)模式。隨之而來的也出現(xiàn)了一系列的基于MVC模式的開發(fā)框架冒滩,Struts框架轻抱、Spring MVC 等。
1. Web 技術(shù)的發(fā)展
1. 第一階段 靜態(tài)網(wǎng)站
Web技術(shù)出現(xiàn)伊始旦部,由于硬件技術(shù)的限制大多數(shù)Web應(yīng)用都是基于靜態(tài)的HTML頁面祈搜,有部分動態(tài)Web應(yīng)用運(yùn)行起來也是沒有現(xiàn)在這么流暢的。靜態(tài)頁面只能起到信息發(fā)布的作用士八,它們并不具備交互能力容燕。
2. 第二階段 動態(tài)網(wǎng)站
沒有交互能力的應(yīng)用程序,是絕對不能流行起來的婚度。有很多專家提出了不同的實(shí)現(xiàn)動態(tài)Web程序的解決方案蘸秘。其中最早提出的就是通過CGI(通用網(wǎng)關(guān)接口),其中最重要的特點(diǎn)就是可以通過CGI技術(shù)訪問數(shù)據(jù)庫蝗茁,因?yàn)閹缀跛械腤eb應(yīng)用都需要對數(shù)據(jù)進(jìn)行存取醋虏。CGI技術(shù)雖然很強(qiáng)大,但是它也有自己的不足之處哮翘,比如實(shí)現(xiàn)CGI程序的技術(shù)難度比較大颈嚼,代碼不易維護(hù)等。
3. Servlet 實(shí)現(xiàn)動態(tài)網(wǎng)站
為了解決以上的這些歷史遺留問題饭寺,Java 在1999年推出了自己的動態(tài)Web技術(shù)Servlet阻课。
Servlet有如下技術(shù)優(yōu)點(diǎn)
- 基于Java技術(shù)實(shí)現(xiàn)
- 跨平臺
- 可以訪問眾多數(shù)據(jù)庫
- 多線程
- 網(wǎng)絡(luò)
- 瀏覽器向服務(wù)器發(fā)送請求
- Web服務(wù)器接受請求
- 將請求提交給Servlet引擎
- Servlet引擎調(diào)用Service方法
- 返回響應(yīng)給客戶端(相應(yīng)的代碼)
Servlet是整個JavaWeb技術(shù)的核心,也就是說Servlet可以實(shí)現(xiàn)全部的動態(tài)JavaWeb程序的功能艰匙。但是如果客戶端頁面的邏輯非常復(fù)雜的話限煞,編寫Servlet的工作量是非常大的,而且代碼不易維護(hù)员凝。
4. JSP的出現(xiàn)
為了解決這個問題實(shí)現(xiàn)頁面顯示代碼編寫與控制邏輯代碼編寫的分離署驻,JSP技術(shù)就這樣誕生了。
JSP技術(shù)可以在同一個頁面中將客戶端代碼與服務(wù)端代碼進(jìn)行混合編程健霹,可以直接使用Java代碼作為服務(wù)端腳本旺上。
sun公司為了充分利用已有的Servlet技術(shù),在第一次訪問JSP頁面時骤公,JSP頁面會被JSP引擎翻譯成Servlet抚官,然后再交由Servlet引擎來進(jìn)行處理。
2. Java Web 技術(shù)
1. Java Web 的基本構(gòu)成
一個典型的Java web程序中應(yīng)該包含以下元素凌节,將它們打包在一起钦听,并在Web容器中運(yùn)行。
- Servlet
- Java Server Pages
- JSP標(biāo)準(zhǔn)標(biāo)簽(JSTL)和定制標(biāo)簽
- 在Web應(yīng)用程序中使用的Java類
- 靜態(tài)的文件倍奢,包括HTML朴上、圖像、JavaScript和CSS
- 描述Web應(yīng)用程序的元信息(web.xml)
2. Java Web 的目錄結(jié)構(gòu)
- untitled3 是這個工程的根目錄
- web 目錄下存放資源文件 例如 圖片目錄卒煞、CSS目錄痪宰、JS目錄、jsp文件等
- WEB-INF 目錄下 存放 工程的配置文件 web.xml 和 lib 庫文件
3. Java Web 的配置文件
配置文件是所有Java web應(yīng)用程序的支柱畔裕。我們這里介紹的文件主要是位于WEB-INF目錄下的web.xml文件衣撬。除此之外在Tomcat\conf目錄下也有一個web.xml文件,這個文件是對于Tomcat服務(wù)器的配置文件扮饶,一種全局的配置具练。
配置文件可以進(jìn)行如下的相關(guān)配置??
- Servlet Context 初始化參數(shù)
- Session配置
- Servlet/JSP定義
- 標(biāo)簽庫引用
- MIME類型映射
- 歡迎頁
- 錯誤頁
- 安全信息
3. MVC 模式和 MVC框架
經(jīng)過廣泛的使用Servlet/JSP技術(shù),開發(fā)者們漸漸發(fā)現(xiàn)了Servlet與JSP技術(shù)的弊端
HTML代碼甜无、JavaScript扛点、CSS和動態(tài)JSTL、java代碼混合在一起不利于后期的維護(hù)岂丘,為了解決好這個問題將頁面與服務(wù)端代碼分離陵究,這就是MVC模式的基本思想之一。
1. JSP Model 1 與 JSP Model2
- JSP Model1
Mode1由三部分組成
- 客戶端瀏覽器
- 服務(wù)端程序(JSP/Servlet)
- 數(shù)據(jù)庫
這種結(jié)構(gòu)也有它的不足之處奥帘,沒有做到進(jìn)一步的代碼層次分離铜邮。
- JSP Model2
MVC是模型(Model)-視圖(View)-控制器(Controller)的簡稱
以下就是交互圖示
MVC模式可以實(shí)現(xiàn)最大限度的代碼重用
2. Web應(yīng)用中的基礎(chǔ)服務(wù)
在web應(yīng)用中有許多的基礎(chǔ)功能可以在很多頁面進(jìn)行復(fù)用,我們進(jìn)行以下總結(jié)翩概。
- 頁面導(dǎo)航:這個功能最好在控制器中實(shí)現(xiàn)
- 頁面布局:通過標(biāo)準(zhǔn)方法來實(shí)現(xiàn)頁面布局
- 數(shù)據(jù)驗(yàn)證:最好通過集合框架來實(shí)現(xiàn)對數(shù)據(jù)的驗(yàn)證
- 業(yè)務(wù)邏輯重用:把能夠重復(fù)利用的業(yè)務(wù)邏輯從系統(tǒng)中分離出來牲距,形成一系列獨(dú)立的組件返咱,這樣重用起來就非常容易了钥庇。
3. 什么是MVC模式
MVC模式將一個應(yīng)用分成3部分:Model(模型)、View(視圖)咖摹、Controller(控制器)评姨,這3個部分應(yīng)該盡量少的耦合,從而可以提高應(yīng)用程序的可擴(kuò)展性和可維護(hù)性萤晴。
- 多個視圖可以對應(yīng)多個模型
- 可以通過模型為視圖提供不同的數(shù)據(jù)
- 可以在控制器中添加權(quán)限驗(yàn)證來限制用戶對敏感資源的訪問
- 降低各層次之間的耦合性吐句,有利于對系統(tǒng)中各層進(jìn)行擴(kuò)展
4. 常用的MVC框架
Struts 1.x
Struts 2.x
Spring MVC
總結(jié)
我們了解了web技術(shù)的歷史及其發(fā)展路程,了解了在web應(yīng)用開發(fā)中所必需的內(nèi)容店读,了解到在多人開發(fā)中MVC模式所起到的重要作用嗦枢。
下節(jié)預(yù)告
- HTML
- CSS
- JavaScript
- Ajax
敬請期待哦~