Java Web基礎(chǔ)教程(二)開發(fā)基礎(chǔ)

前言

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)

  1. 基于Java技術(shù)實(shí)現(xiàn)
  1. 跨平臺
  2. 可以訪問眾多數(shù)據(jù)庫
  3. 多線程
  4. 網(wǎng)絡(luò)
Servlet的請求響應(yīng)流程
  1. 瀏覽器向服務(wù)器發(fā)送請求
  2. Web服務(wù)器接受請求
  3. 將請求提交給Servlet引擎
  4. Servlet引擎調(diào)用Service方法
  5. 返回響應(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)行處理。

JSP頁面的請求阶捆、相應(yīng)和運(yù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)

標(biāo)準(zhǔn)目錄結(jié)構(gòu)
  1. untitled3 是這個工程的根目錄
  1. web 目錄下存放資源文件 例如 圖片目錄卒煞、CSS目錄痪宰、JS目錄、jsp文件等
  2. 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)配置??

  1. Servlet Context 初始化參數(shù)
  1. Session配置
  2. Servlet/JSP定義
  3. 標(biāo)簽庫引用
  4. MIME類型映射
  5. 歡迎頁
  6. 錯誤頁
  7. 安全信息

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由三部分組成

  1. 客戶端瀏覽器
  2. 服務(wù)端程序(JSP/Servlet)
  3. 數(shù)據(jù)庫
Model1的構(gòu)架

這種結(jié)構(gòu)也有它的不足之處奥帘,沒有做到進(jìn)一步的代碼層次分離铜邮。

  • JSP Model2

MVC是模型(Model)-視圖(View)-控制器(Controller)的簡稱

以下就是交互圖示

Model2的構(gòu)架

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ù)告

  1. HTML
  2. CSS
  3. JavaScript
  4. Ajax

敬請期待哦~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市屯断,隨后出現(xiàn)的幾起案子文虏,更是在濱河造成了極大的恐慌侣诺,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氧秘,死亡現(xiàn)場離奇詭異年鸳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)丸相,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門搔确,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人灭忠,你說我怎么就攤上這事膳算。” “怎么了弛作?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵畦幢,是天一觀的道長。 經(jīng)常有香客問我缆蝉,道長宇葱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任刊头,我火速辦了婚禮黍瞧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘原杂。我一直安慰自己印颤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布穿肄。 她就那樣靜靜地躺著年局,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咸产。 梳的紋絲不亂的頭發(fā)上矢否,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機(jī)與錄音脑溢,去河邊找鬼僵朗。 笑死,一個胖子當(dāng)著我的面吹牛屑彻,可吹牛的內(nèi)容都是我干的验庙。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼社牲,長吁一口氣:“原來是場噩夢啊……” “哼粪薛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起搏恤,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤违寿,失蹤者是張志新(化名)和其女友劉穎让禀,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陨界,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡巡揍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了菌瘪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腮敌。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖俏扩,靈堂內(nèi)的尸體忽然破棺而出糜工,到底是詐尸還是另有隱情,我是刑警寧澤录淡,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布捌木,位于F島的核電站,受9級特大地震影響嫉戚,放射性物質(zhì)發(fā)生泄漏刨裆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一彬檀、第九天 我趴在偏房一處隱蔽的房頂上張望帆啃。 院中可真熱鬧,春花似錦窍帝、人聲如沸努潘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疯坤。三九已至,卻和暖如春深浮,著一層夾襖步出監(jiān)牢的瞬間压怠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工略号, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刑峡,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓玄柠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親诫舅。 傳聞我的和親對象是個殘疾皇子羽利,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法刊懈,內(nèi)部類的語法这弧,繼承相關(guān)的語法娃闲,異常的語法,線程的語...
    子非魚_t_閱讀 31,581評論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,790評論 0 11
  • 這部分主要是與Java Web和Web Service相關(guān)的面試題匾浪。 96皇帮、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,397評論 0 10
  • 我在雜亂的菜市場里行走著,突然間被她吸引了蛋辈,一身金黃的皮毛属拾,毛發(fā)是一根一根的,好似淡金色的頭發(fā)冷溶,又像是一株株禾苗渐白,...
    Zhangyousheng閱讀 167評論 0 0
  • 終于可以躺下 躺在鋪滿月光的床上 月光很舒展 不像我 心里跌跌蕩蕩 我呼一口氣 拍拍胸口 像是給些安慰 月光躺...
    m末子m閱讀 128評論 0 1