2019-01-17

jsp的實質(zhì)是什么?

一、JSP的概念

我們的目標(biāo)是要搞清楚什么是JSP,他和HTML的靜態(tài)頁面有什么區(qū)別呢?

jsp是運行在服務(wù)器端的,它的實質(zhì)是一個java文件,

而html的靜態(tài)信息,所有內(nèi)容都是發(fā)送到客戶端再運行的。

JSP全稱是Java 服務(wù)器頁面 (Java Server Page ) 以擴展名 .jsp 保存,是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)簽,就構(gòu)成了JSP網(wǎng)頁java程序片段可以操縱數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送E-mail等,實現(xiàn)建立動態(tài)網(wǎng)站所需要的功能。有效地控制動態(tài)內(nèi)容生成,在Java Server Page里面使用 Java 編程語言和類庫,而HTML 用于表示頁面,而 Java 代碼用于訪問動態(tài)內(nèi)容。這樣大大降低了對客戶瀏覽器的要求,即使客戶瀏覽器端不支持Java,也可以訪問JSP網(wǎng)頁。

二、JSP的優(yōu)點

1、平臺無關(guān)性。

它擁有Java語言跨平臺的特性,以及業(yè)務(wù)代碼分離、組件重用、基礎(chǔ)Java Servlet功能和預(yù)編譯等特征。它也是跨平臺的,可以應(yīng)用在不同的系統(tǒng)中,如Windows、Linux、Mac和Solaris等。這同時也拓寬了JSP可以使用的Web服務(wù)器的范圍。

2、將內(nèi)容與表示分離。

采用JSP技術(shù)開發(fā)的項目,通常使用HTML語言來設(shè)計和格式化靜態(tài)頁面的內(nèi)容,而使用JSP標(biāo)簽和Java代碼片段來實現(xiàn)動態(tài)部分。程序開發(fā)人員可以將業(yè)務(wù)處理代碼全部放到JavaBean中,或者把業(yè)務(wù)處理代碼交給Servlet、Struts等其他業(yè)務(wù)控制層來處理,從而實現(xiàn)業(yè)務(wù)代碼從視圖層分離。這樣JSP頁面只負(fù)責(zé)顯示數(shù)據(jù)即可,當(dāng)需要修改業(yè)務(wù)代碼時,不會影響JSP頁面的代碼。

3、強調(diào)可重用組件。

JSP中可以使用JavaBean編寫業(yè)務(wù)組件,也就是使用一個JavaBean類封裝業(yè)務(wù)處理代碼或者作為一個數(shù)據(jù)存儲模型,在JSP頁面甚至整個項目中都可以重復(fù)使用這個JavaBean。JavaBean也可以應(yīng)用到其他Java應(yīng)用程序中,包括桌面應(yīng)用程序。

簡化頁面開發(fā)-Web 設(shè)計人員和 Web 程序員使用 Web 開發(fā)工具開發(fā) JSP 頁面

4、高速。

JSP會預(yù)編譯,就是在用戶第一次通過瀏覽器訪問JSP頁面時,服務(wù)器將對JSP頁面代碼進行編譯,并且僅執(zhí)行一次編譯。編譯好的代碼將被保存,在用戶下一次訪問時,直接執(zhí)行編譯好的代碼。這樣不僅節(jié)約了服務(wù)器的CPU資源,還大大提升了客戶端的訪問速度。

三、JSP的執(zhí)行過程

JSP全名為Java Server Pages,它實現(xiàn)了Html語法中的java擴張(以 <%, %>形式),我們可以在jsp頁面中嵌入java代碼,如下面這段代碼獲得服務(wù)器的當(dāng)前時間,并打印

<body?onload="getnow()">????<%????????Date now = new Date();????????SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 ?HH:mm:ss");????????String nowstr = sdf.format(now);????????// System.out.println(nowstr);????????out.println("java:"+nowstr);????%><br/></body>

在服務(wù)器端執(zhí)行的。通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶端。雖然JSP頁面很少進行數(shù)據(jù)處理,只是用來實現(xiàn)網(wǎng)頁的靜態(tài)化頁面,只是用來提取數(shù)據(jù),不會進行業(yè)務(wù)處理。

為什么我們可以在jsp中嵌入java代碼呢?因為jsp在執(zhí)行需要先轉(zhuǎn)譯成為java代碼,然后在編譯成為class文件,也就是jsp的實質(zhì)就是一個java文件。如下圖所示:

查看tomcat目錄下的\work\Catalina\localhost目錄,你會發(fā)現(xiàn)所有的web項目都會在這里有對應(yīng)的目錄,打開其中一個項目一直打開進去,會發(fā)現(xiàn)每一個jsp頁面在都會有其對應(yīng)的java文件和編譯后的class文件。,這個文件有tomcat生成。


小編整理了一些java進階學(xué)習(xí)資料和面試題,需要資料的請加JAVA高階學(xué)習(xí)Q群:664389243?這是小編創(chuàng)建的java高階學(xué)習(xí)交流群,加群一起交流學(xué)習(xí)深造。群里也有小編整理的2019年最新最全的java高階學(xué)習(xí)資料!


所以我們在開發(fā)過程會發(fā)現(xiàn)jsp頁面在第一次訪問的時候速度會比較慢,因為需要轉(zhuǎn)譯和編譯兩個步驟,但是以后就會非???,因為直接就訪問以及編譯好的class文件了。



pac?o[?Q?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • JSP總結(jié)(經(jīng)典) day1 JSP 定義: 1)Java Server Page, Java EE 組件,本...
    91數(shù)據(jù)閱讀 3,645評論 0 13
  • get和post方法提交,mvc三層模式介紹和servlet的生命周期 servlet是一個比較重要的內(nèi)容,我們以...
    會飛的豬bj閱讀 273評論 0 0
  • mvc演示和手動建立servet 一、jsp和servlet有什么聯(lián)系和區(qū)別 servlet和我們昨天學(xué)習(xí)的jsp...
    會飛的豬bj閱讀 265評論 0 0
  • 今天我的工作組終于聚齊了。由于這幾天于老師外出學(xué)習(xí),孩子們天天都在問于老師去哪兒了?什么時候回來?其實我也...
    0晴空藍(lán)兮0閱讀 478評論 0 0
  • 劇情簡介: 主人公藍(lán)唐是一名男同性戀者,在體面工作的包裝下,過著自己隨性自由的生活,無聊的夜晚一樣被陌生的身...
    克雷依閱讀 1,942評論 0 3

友情鏈接更多精彩內(nèi)容