jsp簡單原理

wangebie發表於2018-02-09

從表面上看,jsp頁面已經不再需要java類,似乎完全脫離了Java物件導向的特徵.事實上,JSP的本質依然是Servlet(一個Java類),每個JSP頁面就是一個Servlet例項-JSP頁面由系統編譯成Servlet,Servlet在負責響應使用者請求。具體資訊可以在啟動Tomcat後隨便執行一個Demo,可以再Tomcat的work\Catalina\localhost\jspPrinciple\org\apache\jsp目錄下找到如下檔案:test_jsp.java和test_jsp.class(Tomcat根據JSP頁面生成對應的Servlet的Java檔案和class檔案)

如以下程式碼(包含java指令碼的一個jsp頁面)

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>java指令碼</title>
 </head>
 <body>
  <%for(int i=0;i<7;i++){ %>
<p>123455</p>
<%} %>
 </body>

</html>

頁面顯示:

頁面原始碼:

可以看到java指令碼已經在服務端解析成靜態的HTML頁面了.

結論:

1、jsp檔案必須在jsp伺服器內執行。

2、jsp檔案必須生成Servlet才能執行。

3、每個jsp頁面的第一個訪問者速度很慢,因為必須等待jsp變異成Servlet。

4、jsp頁面的訪問者無需安裝任何客戶端,甚至不需要刻意執行的java的執行環境,因為jsp頁面輸送到客戶端的是標準HTML頁面。

相關文章