什麼是JSP?
JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML檔案(*.htm,*.html)中插入Java程式段(Scriptlet)和JSP標記(tag),從而形成JSP檔案(*.jsp)。 用JSP開發的Web應用是跨平臺的,既能在Linux下執行,也能在其他作業系統上執行。
JSP簡介
JSP技術使用Java程式語言編寫類XML的tags和scriptlets,來封裝產生動態網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在於服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計和顯示分離,支援可重用的基於元件的設計,使基於Web的應用程式的開發變得迅速和容易。
Web伺服器在遇到訪問JSP網頁的請求時,首先執行其中的程式段,然後將執行結果連同JSP檔案中的HTML程式碼一起返回給客戶。插入的Java程式段可以運算元據庫、重新定向網頁等,以實現建立動態網頁所需要的功能。
JSP與Java Servlet一樣,是在伺服器端執行的,通常返回給客戶端的就是一個HTML文字,因此客戶端只要有瀏覽器就能瀏覽。
JSP的1.0規範的最後版本是1999年9月推出的,12月又推出了1.1規範。目前較新的是JSP1.2規範,JSP2.0規範的徵求意見稿也已出臺。
JSP頁面由HTML程式碼和嵌入其中的Java程式碼所組成。伺服器在頁面被客戶端請求以後對這些Java程式碼進行處理,然後將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術基礎,而且大型的Web應用程式的開發需要Java Servlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的物件導向,具有平臺無關性且安全可靠,主要面向因特網的所有特點。
自JSP推出後,眾多大公司都支援JSP技術的伺服器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業應用的伺服器端語言。
JSP可用一種簡單易懂的等式表示為:HTML+Java=JSP。
JSP技術的強勢
(1)一次編寫,到處執行。除了系統之外,程式碼不用做任何更改。
(2)系統的多平臺支援。基本上可以在所有平臺上的任意環境中開發,在任意環境中進行系統部署,在任意環境中擴充套件。相比ASP/.net的侷限性是顯而易見的。
(3)強大的可伸縮性。從只有一個小的Jar檔案就可以執行Servlet/JSP,到由多臺伺服器進行叢集和負載均衡,到多臺Application進行事務處理,訊息處理,一臺伺服器到無數臺伺服器,Java顯示了一個巨大的生命力。
(4)多樣化和功能強大的開發工具支援。這一點與ASP很像,Java已經有了許多非常優秀的開發工具,而且許多可以免費得到,並且其中許多已經可以順利的執行於多種平臺之下。
(5)支援伺服器端元件。web應用需要強大的伺服器端元件來支援,開發人員需要利用其他工具設計實現複雜功能的元件供web頁面呼叫,以增強系統效能。JSP可以使用成熟的JAVA BEANS 元件來實現複雜商務功能。
JSP技術的弱勢
(1) 與ASP一樣,Java的一些優勢正是它致命的問題所在。正是由於為了跨平臺的功能,為了極度的伸縮能力,所以極大的增加了產品的複雜性。
(2) Java的執行速度是用class常駐記憶體來完成的,所以它在一些情況下所使用的記憶體比起使用者數量來說確實是“最低效能價格比”了。從另一方面,它還需要硬碟空間來儲存一系列的.java檔案和.class檔案,以及對應的版本檔案。
相關文件:JAVA SSH 框架介紹 JSP九大內建物件詳解
相關文章
- 為什麼那麼多公司不用 .NET,而選擇 PHP、JSP,是 .NET 有什麼缺點嗎?PHPJS
- JSP標籤庫介紹(1)什麼是標籤庫? (轉)JS
- 什麼是cookie,什麼是sessionCookieSession
- 什麼是DNS,什麼是HostsDNS
- 什麼是模式? 什麼是框架?模式框架
- 這是什麼這是什麼
- 什麼是WebAuthn、FIDO 是什麼?Web
- ITIL是什麼意思?ITIL是什麼?
- 什麼是跨域,什麼是同源跨域
- 什麼是.NET平臺、什麼是c#、什麼是ASP.NET。C#ASP.NET
- ftp是什麼,ftp是什麼東西?FTP
- Java是什麼_Java是做什麼的?Java
- 什麼是正向代理?什麼是反向代理?
- NLA是什麼?NLA的原理是什麼?
- ###什麼是Linux核心###什麼是MMULinux
- Jsp和Servlet有什麼區別?JSServlet
- 為什麼要有 Servlet ,什麼是 Servlet 容器,什麼是 Web 容器?ServletWeb
- 什麼是塊元素?什麼是行內元素?
- 什麼是API介面,具體是什麼意思?API
- 什麼是框架?為什麼說 Angular 是框架?框架Angular
- 什麼是Unicode,什麼是UTF-8Unicode
- 什麼是藍海?什麼是紅海?什麼是網際網路思維?
- nginx 是什麼,能幹什麼?Nginx
- 什麼是Django?有什麼用途?Django
- AI三重問:什麼是AI?什麼是AI模型?什麼是AI大模型?AI大模型
- 什麼是重繪repaint?什麼是迴流reflow?AI
- DHCP是什麼?DHCP伺服器是什麼意思?伺服器
- 什麼是CDN?CDN的技術原理是什麼?
- 交換機是什麼,它的工作原理是什麼
- GNU是什麼?和Linux是什麼關係?Linux
- 域名是什麼?申請域名的流程是什麼?
- 什麼是雲端計算?什麼是公司網盤?
- 什麼是eval()?eval是用來幹什麼的?
- 什麼是 Nginx?Nginx
- 什麼是PHPPHP
- 什麼是PodcastAST
- 什麼是Flutter?Flutter
- 敏捷是什麼?敏捷