教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

JAVA培訓(xùn)之jsp入門(mén)

更新時(shí)間:2016年08月13日18時(shí)00分 來(lái)源:傳智播客JAVA培訓(xùn)學(xué)員 瀏覽次數(shù):

JSP入門(mén)

1.什么是JSP?

JSP是Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。它是Java Server Pages的簡(jiǎn)稱。JSP技術(shù)有點(diǎn)類(lèi)似ASP技術(shù),它在傳統(tǒng)的網(wǎng)頁(yè)HTML文件中插入了Java程序段和JSP標(biāo)記,從而形成了JSP文件。

2.JSP的作用

我們知道,jsp是一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),并且它是服務(wù)器端技術(shù),屬于動(dòng)態(tài)資源的一種。瀏覽器不能直接顯示。其實(shí),jsp本身也是一個(gè)Servlet,這個(gè)我們會(huì)在后面詳細(xì)講解。jsp與Servlet和HTML都有關(guān)系,下面我們來(lái)分析它們的各自的優(yōu)缺點(diǎn):
  • Servlet的優(yōu)缺點(diǎn):
我們知道,在Servlet中通過(guò)response的response.getWriter().print(“<html>”)方法向?yàn)g覽器端響應(yīng)的,那么可以通過(guò)該方法向?yàn)g覽器響應(yīng)回一個(gè)HTML文件。這樣來(lái)說(shuō),Servlet相對(duì)于JSP和HTML就有了以下優(yōu)缺點(diǎn):
缺點(diǎn):不適合設(shè)置HTML響應(yīng)體,需要大量的response.getWriter().print(“<html>”);
優(yōu)點(diǎn):相對(duì)于HTML來(lái)說(shuō),Servlet是動(dòng)態(tài)資源,可以編程;
  • HTML的優(yōu)缺點(diǎn):
HTML是靜態(tài)資源,瀏覽器可以直接顯示。相對(duì)Servlet和JSP來(lái)說(shuō),它就有以下優(yōu)缺點(diǎn):
缺點(diǎn):HTML是靜態(tài)頁(yè)面,不能包含動(dòng)態(tài)信息;
優(yōu)點(diǎn):由于瀏覽器可以直接顯示,不用為輸出HTML標(biāo)簽發(fā)愁;
  • Jsp的優(yōu)點(diǎn):
由于jsp本身也是一個(gè)Servlet,而且又包含了HTML標(biāo)簽,所以jsp可以說(shuō)是結(jié)合了Servlet和HTML的優(yōu)點(diǎn)。

3.JSP與Servlet的分工

在之前的開(kāi)發(fā)中,由于JSP文件中也可以書(shū)寫(xiě)Java代碼,有一段時(shí)間JSP取代了Servlet,JSP不僅用來(lái)顯示數(shù)據(jù),還用來(lái)處理數(shù)據(jù),這種開(kāi)發(fā)模式,我們稱之為Model1模式,但是它不屬于MVC模式,如圖1-1所示:

圖1-1 Model1
這種模式適合小型的web項(xiàng)目開(kāi)發(fā),而且對(duì)Java web開(kāi)發(fā)人員的技術(shù)水平要求不高,但是它也有以下缺點(diǎn):
  • HTML標(biāo)簽與Java代碼耦合在一起,導(dǎo)致頁(yè)面設(shè)計(jì)與邏輯處理無(wú)法分離;
  • 可讀性差,調(diào)試?yán)щy,不利于維護(hù);
  • 功能劃分不清。
而現(xiàn)在開(kāi)發(fā)中已經(jīng)很少使用此種開(kāi)發(fā)模式,現(xiàn)在jsp就是用來(lái)顯示數(shù)據(jù),而數(shù)據(jù)的處理交給了Servlet來(lái)處理,這樣Model1模式的缺點(diǎn)都可以避免了。下面我們來(lái)看一下JSP與Servlet是如何分工的:
JSP:
  • 作為請(qǐng)求發(fā)起頁(yè)面,例如:顯示表單,超鏈接;
  • 作為請(qǐng)求結(jié)束頁(yè)面,例如:顯示數(shù)據(jù)。
Servlet:
  • 作為請(qǐng)求中處理數(shù)據(jù)的環(huán)節(jié)
下面通過(guò)一張圖來(lái)詳細(xì)了解Servlet與JSP的分工,如圖1-2所示:

圖1-2 jsp與Servlet分工圖
圖1-2中,當(dāng)點(diǎn)擊form.jsp頁(yè)面中的“提交”按鈕,就發(fā)送一個(gè)請(qǐng)求給Servlet,當(dāng)Servlet處理好數(shù)據(jù),就請(qǐng)求轉(zhuǎn)發(fā)給result.jsp。在result.jsp頁(yè)面顯示處理后的數(shù)據(jù)。
其實(shí),我們可以理解jsp頁(yè)面就是一個(gè)餐廳的服務(wù)器員,jsp就是為顧客提供菜單,然后由顧客來(lái)選擇,Servlet就相當(dāng)于餐廳里的廚師,Servlet處理好顧客的請(qǐng)求,然后交給服務(wù)器,由服務(wù)器員將請(qǐng)求結(jié)果呈現(xiàn)給顧客。

本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://m.8y3kgpwe.cn/javaee
0 分享到:
和我們?cè)诰€交談!