jsp和servlet的區(qū)別探討
更新時(shí)間:2013年10月10日 16:13:08 作者:
什么是servlet,servlet是在服務(wù)器端執(zhí)行的java程序,jsp說(shuō)得簡(jiǎn)單點(diǎn)就是用另一套簡(jiǎn)單的規(guī)則寫(xiě)的servlet程序,它可以寫(xiě)java代碼,還可以寫(xiě)html代碼,詳細(xì)請(qǐng)看本文
答案一:
首先你先要弄懂什么是servlet,servlet是在服務(wù)器端執(zhí)行的java程序,只不過(guò)它有專(zhuān)門(mén)的一套規(guī)則(就是我們平常所說(shuō)的api);jsp說(shuō)得簡(jiǎn)單點(diǎn)就是用另一套簡(jiǎn)單的規(guī)則寫(xiě)的servlet程序,它可以寫(xiě)java代碼,還可以寫(xiě)html代碼,JavaScript,css等等……,但是到服務(wù)器端首先會(huì)被轉(zhuǎn)成servlet程序然后就按照servlet的執(zhí)行順序執(zhí)行了。
答案二:
以下的是從網(wǎng)上找的:
JSP和SERVLET到底在應(yīng)用上有什么區(qū)別,很多人搞不清楚。我來(lái)胡扯幾句吧。簡(jiǎn)單的說(shuō),SUN首先發(fā)展出SERVLET,其功能比較強(qiáng)勁,體系設(shè)計(jì)也很先進(jìn),只是,它輸出HTML語(yǔ)句還是采用了老的CGI方式,是一句一句輸出,所以,編寫(xiě)和修改HTML非常不方便。
后來(lái)SUN推出了類(lèi)似于ASP的鑲嵌型的JSP,把JSP TAG鑲嵌到HTML語(yǔ)句中,這樣,就大大簡(jiǎn)化和方便了網(wǎng)頁(yè)的設(shè)計(jì)和修改。新型的網(wǎng)絡(luò)語(yǔ)言如ASP,PHP,JSP都是鑲嵌型的SCRIPT語(yǔ)言。
從網(wǎng)絡(luò)三層結(jié)構(gòu)的角度看,一個(gè)網(wǎng)絡(luò)項(xiàng)目最少分三層:data layer,business layer, presentation layer。當(dāng)然也可以更復(fù)雜。SERVLET用來(lái)寫(xiě)business layer是很強(qiáng)大的,但是對(duì)于寫(xiě)presentation layer就很不方便。JSP則主要是為了方便寫(xiě)presentation layer而設(shè)計(jì)的。當(dāng)然也可以寫(xiě)business layer。寫(xiě)慣了ASP,PHP,CGI的朋友,經(jīng)常會(huì)不自覺(jué)的把presentation layer和business layer混在一起。就象前面那個(gè)朋友,把數(shù)據(jù)庫(kù)處理信息放到JSP中,其實(shí),它應(yīng)該放在business layer中。
根據(jù)SUN自己的推薦,JSP中應(yīng)該僅僅存放與presentation layer有關(guān)的東東,也就是說(shuō),只放輸出HTML網(wǎng)頁(yè)的部份。而所有的數(shù)據(jù)計(jì)算,數(shù)據(jù)分析,數(shù)據(jù)庫(kù)聯(lián)結(jié)處理,統(tǒng)統(tǒng)是屬于business layer,應(yīng)該放在JAVA BEANS中。通過(guò)JSP調(diào)用JAVA BEANS,實(shí)現(xiàn)兩層的整合。
實(shí)際上,微軟前不久推出的DNA技術(shù),簡(jiǎn)單說(shuō),就是ASP+COM/DCOM技術(shù)。與JSP+BEANS完全類(lèi)似,所有的presentation layer由ASP完成,所有的business layer由COM/DCOM完成。通過(guò)調(diào)用,實(shí)現(xiàn)整合。
為什么要采用這些組件技術(shù)呢?因?yàn)閱渭兊腁SP/JSP語(yǔ)言是非常低效率執(zhí)行的,如果出現(xiàn)大量用戶點(diǎn)擊,純SCRIPT語(yǔ)言很快就到達(dá)了他的功能上限,而組件技術(shù)就能大幅度提高功能上限,加快執(zhí)行速度。
另外一方面,純SCRIPT語(yǔ)言將presentation layer和business layer混在一起,造成修改不方便,并且代碼不能重復(fù)利用。如果想修改一個(gè)地方,經(jīng)常會(huì)牽涉到十幾頁(yè)CODE,采用組件技術(shù)就只改組件就可以了。
綜上所述,SERVLET是一個(gè)早期的不完善的產(chǎn)品,寫(xiě)business layer很好,寫(xiě)presentation layer就很臭,并且兩層混雜。
所以,推出JSP+BAEN,用JSP寫(xiě)presentation layer,用BAEN寫(xiě)business layer。SUN自己的意思也是將來(lái)用JSP替代SERVLET。
可是,這不是說(shuō),學(xué)了SERVLET沒(méi)用,實(shí)際上,你還是應(yīng)該從SERVLET入門(mén),再上JSP,再上JSP+BEAN。
強(qiáng)調(diào)的是:學(xué)了JSP,不會(huì)用JAVA BEAN并進(jìn)行整合,等于沒(méi)學(xué)。大家多花點(diǎn)力氣在JSP+BEAN上。
在補(bǔ)充幾句:
我們可以看到,當(dāng)ASP+COM和JSP+BEAN都采用組件技術(shù)后,所有的組件都是先進(jìn)行編譯,并駐留內(nèi)存,然后快速執(zhí)行。所以,大家經(jīng)常吹的SERVLET/JSP先編譯駐內(nèi)存后執(zhí)行的速度優(yōu)勢(shì)就沒(méi)有了。
反之,ASP+COM+IIS+NT緊密整合,應(yīng)該會(huì)有較大的速度優(yōu)勢(shì)呈現(xiàn)。而且,ASP+COM+IIS+NT開(kāi)發(fā)效率非常高,雖然BUG很多。
那么,為什么還用JSP+BEAN?因?yàn)镴AVA實(shí)在前途遠(yuǎn)大。微軟分拆后,操作系統(tǒng)將群雄并起,應(yīng)用軟件的開(kāi)發(fā)商必定要找一個(gè)通用開(kāi)發(fā)語(yǔ)言進(jìn)行開(kāi)發(fā),JAVA一統(tǒng)天下的時(shí)機(jī)就到了。如果微軟分拆順利,從中分出的應(yīng)用軟件公司將成為JAVA的新領(lǐng)導(dǎo)者。目前的JAVA大頭SUN和IBM都死氣沉沉,令人失望。希望新公司能注入新活力。不過(guò),新公司很有可能和舊SUN展開(kāi)JAVA標(biāo)準(zhǔn)大戰(zhàn),雙方各自制定標(biāo)準(zhǔn),影響JAVA夸平臺(tái)。
另外,現(xiàn)在的機(jī)器速度越來(lái)越快,JAVA的速度劣勢(shì)很快就可以被克服。
首先你先要弄懂什么是servlet,servlet是在服務(wù)器端執(zhí)行的java程序,只不過(guò)它有專(zhuān)門(mén)的一套規(guī)則(就是我們平常所說(shuō)的api);jsp說(shuō)得簡(jiǎn)單點(diǎn)就是用另一套簡(jiǎn)單的規(guī)則寫(xiě)的servlet程序,它可以寫(xiě)java代碼,還可以寫(xiě)html代碼,JavaScript,css等等……,但是到服務(wù)器端首先會(huì)被轉(zhuǎn)成servlet程序然后就按照servlet的執(zhí)行順序執(zhí)行了。
答案二:
以下的是從網(wǎng)上找的:
JSP和SERVLET到底在應(yīng)用上有什么區(qū)別,很多人搞不清楚。我來(lái)胡扯幾句吧。簡(jiǎn)單的說(shuō),SUN首先發(fā)展出SERVLET,其功能比較強(qiáng)勁,體系設(shè)計(jì)也很先進(jìn),只是,它輸出HTML語(yǔ)句還是采用了老的CGI方式,是一句一句輸出,所以,編寫(xiě)和修改HTML非常不方便。
后來(lái)SUN推出了類(lèi)似于ASP的鑲嵌型的JSP,把JSP TAG鑲嵌到HTML語(yǔ)句中,這樣,就大大簡(jiǎn)化和方便了網(wǎng)頁(yè)的設(shè)計(jì)和修改。新型的網(wǎng)絡(luò)語(yǔ)言如ASP,PHP,JSP都是鑲嵌型的SCRIPT語(yǔ)言。
從網(wǎng)絡(luò)三層結(jié)構(gòu)的角度看,一個(gè)網(wǎng)絡(luò)項(xiàng)目最少分三層:data layer,business layer, presentation layer。當(dāng)然也可以更復(fù)雜。SERVLET用來(lái)寫(xiě)business layer是很強(qiáng)大的,但是對(duì)于寫(xiě)presentation layer就很不方便。JSP則主要是為了方便寫(xiě)presentation layer而設(shè)計(jì)的。當(dāng)然也可以寫(xiě)business layer。寫(xiě)慣了ASP,PHP,CGI的朋友,經(jīng)常會(huì)不自覺(jué)的把presentation layer和business layer混在一起。就象前面那個(gè)朋友,把數(shù)據(jù)庫(kù)處理信息放到JSP中,其實(shí),它應(yīng)該放在business layer中。
根據(jù)SUN自己的推薦,JSP中應(yīng)該僅僅存放與presentation layer有關(guān)的東東,也就是說(shuō),只放輸出HTML網(wǎng)頁(yè)的部份。而所有的數(shù)據(jù)計(jì)算,數(shù)據(jù)分析,數(shù)據(jù)庫(kù)聯(lián)結(jié)處理,統(tǒng)統(tǒng)是屬于business layer,應(yīng)該放在JAVA BEANS中。通過(guò)JSP調(diào)用JAVA BEANS,實(shí)現(xiàn)兩層的整合。
實(shí)際上,微軟前不久推出的DNA技術(shù),簡(jiǎn)單說(shuō),就是ASP+COM/DCOM技術(shù)。與JSP+BEANS完全類(lèi)似,所有的presentation layer由ASP完成,所有的business layer由COM/DCOM完成。通過(guò)調(diào)用,實(shí)現(xiàn)整合。
為什么要采用這些組件技術(shù)呢?因?yàn)閱渭兊腁SP/JSP語(yǔ)言是非常低效率執(zhí)行的,如果出現(xiàn)大量用戶點(diǎn)擊,純SCRIPT語(yǔ)言很快就到達(dá)了他的功能上限,而組件技術(shù)就能大幅度提高功能上限,加快執(zhí)行速度。
另外一方面,純SCRIPT語(yǔ)言將presentation layer和business layer混在一起,造成修改不方便,并且代碼不能重復(fù)利用。如果想修改一個(gè)地方,經(jīng)常會(huì)牽涉到十幾頁(yè)CODE,采用組件技術(shù)就只改組件就可以了。
綜上所述,SERVLET是一個(gè)早期的不完善的產(chǎn)品,寫(xiě)business layer很好,寫(xiě)presentation layer就很臭,并且兩層混雜。
所以,推出JSP+BAEN,用JSP寫(xiě)presentation layer,用BAEN寫(xiě)business layer。SUN自己的意思也是將來(lái)用JSP替代SERVLET。
可是,這不是說(shuō),學(xué)了SERVLET沒(méi)用,實(shí)際上,你還是應(yīng)該從SERVLET入門(mén),再上JSP,再上JSP+BEAN。
強(qiáng)調(diào)的是:學(xué)了JSP,不會(huì)用JAVA BEAN并進(jìn)行整合,等于沒(méi)學(xué)。大家多花點(diǎn)力氣在JSP+BEAN上。
在補(bǔ)充幾句:
我們可以看到,當(dāng)ASP+COM和JSP+BEAN都采用組件技術(shù)后,所有的組件都是先進(jìn)行編譯,并駐留內(nèi)存,然后快速執(zhí)行。所以,大家經(jīng)常吹的SERVLET/JSP先編譯駐內(nèi)存后執(zhí)行的速度優(yōu)勢(shì)就沒(méi)有了。
反之,ASP+COM+IIS+NT緊密整合,應(yīng)該會(huì)有較大的速度優(yōu)勢(shì)呈現(xiàn)。而且,ASP+COM+IIS+NT開(kāi)發(fā)效率非常高,雖然BUG很多。
那么,為什么還用JSP+BEAN?因?yàn)镴AVA實(shí)在前途遠(yuǎn)大。微軟分拆后,操作系統(tǒng)將群雄并起,應(yīng)用軟件的開(kāi)發(fā)商必定要找一個(gè)通用開(kāi)發(fā)語(yǔ)言進(jìn)行開(kāi)發(fā),JAVA一統(tǒng)天下的時(shí)機(jī)就到了。如果微軟分拆順利,從中分出的應(yīng)用軟件公司將成為JAVA的新領(lǐng)導(dǎo)者。目前的JAVA大頭SUN和IBM都死氣沉沉,令人失望。希望新公司能注入新活力。不過(guò),新公司很有可能和舊SUN展開(kāi)JAVA標(biāo)準(zhǔn)大戰(zhàn),雙方各自制定標(biāo)準(zhǔn),影響JAVA夸平臺(tái)。
另外,現(xiàn)在的機(jī)器速度越來(lái)越快,JAVA的速度劣勢(shì)很快就可以被克服。
您可能感興趣的文章:
- JSP學(xué)習(xí)之Servlet用法分析
- JSP、Servlet中g(shù)et請(qǐng)求和post請(qǐng)求的區(qū)別總結(jié)
- jsp和servlet操作mysql中文亂碼問(wèn)題的解決辦法
- JSP與Servlet的介紹說(shuō)明
- Servlet與JSP間的兩種傳值情況
- 在Jsp Servlet中頁(yè)面重新定向總匯
- JSP/Servlet應(yīng)用程序優(yōu)化八法
- 用ajax自動(dòng)加載blogjava和博客園的rss
- jsp簡(jiǎn)單實(shí)現(xiàn)頁(yè)面之間共享信息的方法
- 基于jsp+servlet實(shí)現(xiàn)的簡(jiǎn)單博客系統(tǒng)實(shí)例(附源碼)
相關(guān)文章
jsp只在首次加載時(shí)調(diào)用action實(shí)現(xiàn)代碼
如何只在首次加載時(shí)調(diào)用action,實(shí)現(xiàn)很簡(jiǎn)單只需判斷l(xiāng)ist==null即可,感興趣的朋友可以參考下2013-10-10
Hibernate 修改數(shù)據(jù)的實(shí)例詳解
這篇文章主要介紹了Hibernate 修改數(shù)據(jù)的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家理解這部分內(nèi)容,需要的朋友可以參考下2017-10-10
Spring AOP的實(shí)現(xiàn)原理詳解及實(shí)例
這篇文章主要介紹了Spring AOP的實(shí)現(xiàn)原理詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05
jdbc操作mysql數(shù)據(jù)庫(kù)實(shí)例
這篇文章主要介紹了jdbc操作mysql數(shù)據(jù)庫(kù)的方法,涉及jsp基于jdbc針對(duì)mysql數(shù)據(jù)庫(kù)的連接、插入、查詢(xún)等簡(jiǎn)單操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
Spring mvc實(shí)現(xiàn)Restful返回xml格式數(shù)據(jù)實(shí)例詳解
這篇文章主要介紹了spring mvc實(shí)現(xiàn)Restful返回xml格式數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2017-03-03

