1胀莹、JSP的本質(zhì)是Servlet基跑,當(dāng)用戶向指定Servlet發(fā)送請(qǐng)求時(shí),Servlet利用輸出流動(dòng)態(tài)生成HTML頁面描焰,包括每一個(gè)靜態(tài)的HTML標(biāo)簽和所有在HTML頁面中出現(xiàn)的內(nèi)容涩僻。由于包括了大量的HTML標(biāo)簽、大量的靜態(tài)文本及格式等栈顷,導(dǎo)致Servlet的開發(fā)效率極其低下逆日。所有的表現(xiàn)邏輯,包括布局萄凤、色彩及圖像等室抽,必須耦合在Java代碼中。JSP的出現(xiàn)彌補(bǔ)了這種不足靡努,其靜態(tài)部分無須Java程序控制坪圾,只有需要去數(shù)據(jù)庫讀取或需要?jiǎng)討B(tài)生成的頁面內(nèi)容,才使用Java腳本控制惑朦。
2兽泄、JSP頁面的組成:
? ? ?①靜態(tài)部分:標(biāo)準(zhǔn)的HTML標(biāo)簽、靜態(tài)的頁面內(nèi)容漾月。這些內(nèi)容與靜態(tài)HTML頁面相同病梢。
? ? ?②動(dòng)態(tài)部分:受Java程序控制的內(nèi)容,這些內(nèi)容由Java腳本動(dòng)態(tài)生成梁肿。
? ? ? ? 歡迎學(xué)習(xí)Java Web知識(shí)蜓陌,現(xiàn)在時(shí)間是:
? ? ? ? <%out.println(new java.util.Date());%>
上面放在<%和%>之間,表明這些是Java腳本吩蔑,而不是靜態(tài)內(nèi)容钮热,通過這種方式就可以把Java代碼嵌入JSP頁面中,邊變成動(dòng)態(tài)的JSP頁面
3烛芬、JSP頁面內(nèi)看似不需要Java類隧期,事實(shí)上,JSP的本質(zhì)依然是Servlet(一種特殊Java類)赘娄,每個(gè)JSP頁面就是一個(gè)Servlet實(shí)例——JSP由系統(tǒng)編譯成Servlet仆潮,Servlet再負(fù)責(zé)相應(yīng)用戶請(qǐng)求。對(duì)于Tomcat擅憔,生成的Servlet放在work路徑對(duì)應(yīng)的Web應(yīng)用下 鸵闪。
4、Servlet類主要方法:
? ? ?①init():初始化JSP/Servlet方法
? ? ?②destroy():銷毀JSP/Servlet之前的方法
? ? ?③service():對(duì)用戶請(qǐng)求生成響應(yīng)的方法
5暑诸、根據(jù)JSP的工作原理可知:
? ? ?①JSP文件必須在JSP服務(wù)器內(nèi)運(yùn)行
? ? ?②JSP文件必須生成Servlet才能執(zhí)行
? ? ?③每個(gè)JSP頁面的第一個(gè)訪問者速度很慢蚌讼,因此必須等待JSP編譯成Servlet
? ? ?④JSP頁面的訪問無須安裝任何客戶端辟灰,甚至不需要可以運(yùn)行Java的運(yùn)行環(huán)境,因?yàn)镴SP頁面輸送到客戶端的是標(biāo)準(zhǔn)HTML頁面篡石。