JSP是什么意思?詳解JSP技術(shù)的優(yōu)缺點(diǎn)、三大框架及常見問題
一、JSP是什么意思
JSP是Java Server Pages英文首字母的縮寫,中文翻譯為JAVA服務(wù)器頁面,是由Sun Microsystems公司主導(dǎo)創(chuàng)建的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。其核心技術(shù)是 Java 技術(shù),以 Servlet 的形式接受用戶的訪問和處理數(shù)據(jù),在服務(wù)器端 JSP 文件會被編譯為類文件,其擴(kuò)展名為 .class。JSP部署于網(wǎng)絡(luò)服務(wù)器上,可以響應(yīng)客戶端發(fā)送的請求,并根據(jù)請求內(nèi)容動態(tài)地生成Html、XML或其他格式文檔的Web網(wǎng)頁,然后返回給請求者。JSP技術(shù)以Java語言作為腳本語言,為用戶的HTTP請求提供服務(wù),并能與服務(wù)器上的其它Java程序共同處理復(fù)雜的業(yè)務(wù)需求。
JSP將Java代碼和特定變動內(nèi)容嵌入到靜態(tài)的頁面中,實(shí)現(xiàn)以靜態(tài)頁面為模板,動態(tài)生成其中的部分內(nèi)容。JSP引入了被稱為"JSP動作"的XML標(biāo)簽,用來調(diào)用內(nèi)建功能。另外,可以創(chuàng)建JSP標(biāo)簽庫,然后像使用標(biāo)準(zhǔn)HTML或XML標(biāo)簽一樣使用它們。標(biāo)簽庫能增強(qiáng)功能和服務(wù)器性能,而且不受跨平臺問題的限制。JSP文件在運(yùn)行時(shí)會被其編譯器轉(zhuǎn)換成更原始的Servlet代碼。JSP編譯器可以把JSP文件編譯成用Java代碼寫的Servlet,然后再由Java編譯器來編譯成能快速執(zhí)行的二進(jìn)制機(jī)器碼,也可以直接編譯成二進(jìn)制碼。
二、JSP的特點(diǎn)
1、實(shí)現(xiàn)跨平臺操作
JSP 技術(shù)的最大特點(diǎn)是其編寫的代碼與設(shè)計(jì)平臺完全無關(guān),用戶可以將在任何平臺上編寫的 JSP 頁面拿來在任何 Web 服務(wù)器或 Web 應(yīng)用服務(wù)器上運(yùn)行,然后通過任何 Web 瀏覽器訪問。
除此之外,JSP 還可以在任何平臺上建立服務(wù)器組件,在任何服務(wù)器上運(yùn)行程序。從 JSP 的這個(gè)特點(diǎn)可以看出,應(yīng)用程序開發(fā)者只要在自己選用的任意平臺上編寫 Web 頁面,就可以將編寫好的頁面放在任意服務(wù)器上運(yùn)行,當(dāng)需要對頁面進(jìn)行修改時(shí),也無須考慮開發(fā)運(yùn)行平臺。
JSP 頁面的內(nèi)置腳本語言是基于 Java 編程語言的,因此,JSP 頁面都要被編譯為 Servlet。
2、可重復(fù)使用組件
JSP 頁面依賴于可重用的、跨平臺的組件來執(zhí)行應(yīng)用程序中所要求的更為復(fù)雜的處理。基于組件的方法的特點(diǎn)是:能夠提高總體開發(fā)過程的效率,使得各種組織在他們現(xiàn)有優(yōu)點(diǎn)的基礎(chǔ)上得到更好的優(yōu)化處理。
開發(fā)人員能夠共享并且交換執(zhí)行普通操作的組件,這些組件除了可以將網(wǎng)頁的設(shè)計(jì)與邏輯程序的設(shè)計(jì)分離以節(jié)約開發(fā)時(shí)間,還可以充分利用 Java 以及其他腳本語言的跨平臺的能力及其靈活性。
3、標(biāo)記簡化的語言
標(biāo)準(zhǔn)的 JSP 標(biāo)記可以訪問和實(shí)例化JavaBean組件,并且可以設(shè)置或檢索組件屬性,以及下載Applet,執(zhí)行用其他方法更難以編碼和耗時(shí)的功能。
JSP技術(shù)可以將許多功能封裝起 來,在進(jìn)行Web頁面開發(fā)時(shí),利用這些封裝的功能就可以方便地使用與JSP相關(guān)的XML 標(biāo)記進(jìn)行動態(tài)內(nèi)容的生成。
4、實(shí)現(xiàn)應(yīng)用程序與頁面顯示的分離化
應(yīng)用程序與頁面顯示的分離化可以使 Web 頁面的設(shè)計(jì)者和管理人員能夠互不影響地編輯和使用 JSP 頁面,而不影響其內(nèi)容的生成。
Web 頁面的開發(fā)人員可以利用 HTML 或 XML 標(biāo)記來設(shè)計(jì)和格式化最終頁面,而利用 JSP 標(biāo)記或 Scriptlet 來生成頁面上的動態(tài)內(nèi)容。生成的內(nèi)容被封裝在標(biāo)記和 JavaBean 組件中,并將它們捆綁在 Scriptlet中,使得所有的腳本程序都運(yùn)行在服務(wù)器端。
通常,在服務(wù)器端由 JSP 引擎解釋 JSP 標(biāo)記和 Scriptlet,生成所請求的內(nèi)容,同時(shí),將結(jié)果以 HTML 或者 XML 頁面的形式發(fā)送回瀏覽器。這樣做,不但可以對程序代碼進(jìn)行保密,又可以保證任何基于 HTML 的 Web 瀏覽器的跨平臺使用。
三、JSP的優(yōu)點(diǎn)
1、一次編寫,到處運(yùn)行。除了系統(tǒng)之外,代碼不用做任何更改。
2、系統(tǒng)的多平臺支持。基本上可以在所有平臺上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP的局限性JSP的優(yōu)勢是顯而易見的。
3、強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺Application進(jìn)行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器,Java顯示了一個(gè)巨大的生命力。
4、多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺之下。
5、支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來支持,開發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁面調(diào)用,以增強(qiáng)系統(tǒng)性能。JSP可以使用成熟的JAVA BEANS 組件來實(shí)現(xiàn)復(fù)雜商務(wù)功能。
四、JSP的缺點(diǎn)
1、JSP技術(shù)極大的增加了產(chǎn)品的復(fù)雜性,為了獲得 系統(tǒng)的跨平臺功能和產(chǎn)品伸縮能力,java系統(tǒng)開發(fā)了多種產(chǎn)品,如JRE、JDK、J2EE、EJB、JSWDK、JavaBeans,只有有效地將它們組合在一起,才能產(chǎn)生強(qiáng)大的功能.(部署有難度)
2、java的高效率運(yùn)行需要占用大量的內(nèi)存和硬盤空間,一方面,java的高速運(yùn)行是通過.class文件常駐內(nèi)存來實(shí)現(xiàn)的。另一方面,還需要硬盤空間來存儲一系列的.java 文件和.class文件以及對應(yīng)的版本文件。
3、JSP程序調(diào)試?yán)щy,JSP頁面執(zhí)行時(shí), 首先被轉(zhuǎn)換為.java文件(Servlet), 然后將.java文件編譯為字節(jié)碼文件,這樣,出錯(cuò)信息實(shí)際上指向的是轉(zhuǎn)換后的那個(gè).java文件(Servlet), 而不是JSP本身。
五、JSP三大框架
Jsp三大框架分別是:struts、hibernate、spring。struts充當(dāng)視圖層和控制器,hibernate能夠讓我們通過面向?qū)ο蟮姆绞讲僮鲾?shù)據(jù)庫,spring降低里各層之間的耦合。
1、Struts:基于MVC的充當(dāng)了其中的視圖層和控制器;
2、Hibernate:做持久化的,對JDBC輕量級的封裝,使得我們能過面向?qū)ο蟮牟僮鲾?shù)據(jù)庫;
3、Spring: 采用了控制反轉(zhuǎn)的技術(shù),管理Bean,降低了各層之間的耦合。
六、JSP與Javascript區(qū)別
1、JSP屬于java的組件,使用的是java語言,所以JSP與javascript的區(qū)別就是JAVA與JAVASCRIPT的區(qū)別。
2、JavaScript是一種動態(tài)、弱類型、基于原型的語言,通過瀏覽器可以直接執(zhí)行;而Java(JSP)是面向?qū)ο蟮木幊陶Z言,必須先進(jìn)行編繹和連接等動作才可執(zhí)行。
3、JavaScript編寫在HTML文件中,直接查看網(wǎng)頁的原始碼,就可以看到JavaScript程式,所以沒有保護(hù),任何人都可以透過HTML文件復(fù)制程式;而Java應(yīng)用在網(wǎng)頁的程式稱為Java Applet(Applet是[小程序]的意思),是和HTML文件分開的。
4、JavaScript的結(jié)構(gòu)較為自由松散,而Java和正統(tǒng)的編程語言一樣,結(jié)構(gòu)較為嚴(yán)謹(jǐn)。
5、JavaScript不具有讀寫檔案及網(wǎng)絡(luò)控制等功能,Java則提供了這些功能,但是JavaScript在網(wǎng)頁內(nèi)容的控制和互動性方面,比較方便快捷的。
6、javascript多運(yùn)行于客戶端,而java多運(yùn)行于服務(wù)器端。
七、JSP常見問題
1、Jsp文件怎么打開?
Jsp文件可以用記事本、EditPlus打開,或者直接將jsp格式的文件拖拽到瀏覽器上可以直接解析出來網(wǎng)頁。
2、jsp是前端還是后端技術(shù)?
在jsp剛出來的時(shí)候是直接在jsp上直接寫代碼(后端),后來mvc模式出現(xiàn),為了規(guī)劃就只能充當(dāng)頁面,也就是視圖(前端)。
3、JSP和Servlet有哪些相同點(diǎn)和不同點(diǎn),他們之間的聯(lián)系是什么?
JSP是Servlet技術(shù)的擴(kuò)展,本質(zhì)上是Servlet的簡易方式,更強(qiáng)調(diào)應(yīng)用的外表表達(dá)。JSP編譯后是"類servlet"。Servlet和JSP最主要的不同點(diǎn)在于,Servlet的應(yīng)用邏輯是在Java文件中,并且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個(gè)擴(kuò)展名為.jsp的文件。JSP側(cè)重于視圖,Servlet主要用于控制邏輯。
總結(jié)
優(yōu)化猩SEO:JSP是 Java 平臺上用于編寫包含諸如 HTML、DHTML、XHTML 和 XML 等含有動態(tài)生成內(nèi)容的 Web 頁面的應(yīng)用程序的技術(shù)。JSP 技術(shù)的功能強(qiáng)大,使用靈活,為創(chuàng)建顯示動態(tài) Web 內(nèi)容的頁面提供了一個(gè)簡捷而快速的方法。
參考鏈接:
JSP(java服務(wù)器頁面)_百度百科
https://baike.baidu.com/item/JSP/141543
jsp的主要特點(diǎn)是什么-java教程-PHP中文網(wǎng)
https://m.php.cn/article/421463.html
JSP的優(yōu)缺點(diǎn)-CSDN博客
https://blog.csdn.net/u013628152/article/details/42456237
什么是JSP - 簡書
https://www.jianshu.com/p/cbf60b954d40
修改于2023-09-11
想了解更多建站百科的內(nèi)容,請?jiān)L問:建站百科