jsp編譯原理
1. jsp中的<%=表達式%>和<%表達式%>有什麼區別
區別只有如下一點:
<% %> 標識裡面的是jsp代碼。
<%=變數 %> 是 <% out.println(變數) %> 的簡寫方式。
jsp運行原理:
JSP的本質就是一個Servlet,JSP的運行之前會先被Tomcat伺服器翻譯為.java文件,然後在將.java文本編譯為.class文件,而在訪問jsp時,處理請求的就是那個翻譯後的類。
<% %>:
<% %>叫做腳本片段,其中寫的內容會翻譯在Servlet的Service方法中,顯然可以在Service方法中定義局部變數或者調用其他方法,但是不能在Service中再定義其他的方法,也就是可以在<%%>中定義局部變數或者調用方法,但不能定義方法。
在jsp頁面可以有多個腳本片段,但是多個腳本片段之間要保證結構完整。
<%=%>:
稱作jsp表達式,用於將已經聲明的變數或者表達式輸出到網頁上面。
(1)jsp編譯原理擴展閱讀:
示例:
<body>
<%! int sum=1; %>
<% int sum=8; %>
<h3>----<% out.print(sum++); %></h3>
<h3>----<%= this.sum %></h3>
</body>
2. JSP運行原理什麼
1、當用戶訪問一個JSP頁面時,會向一個Servlet容器(Tomcat等)發出請求;
2、如果頁面有所改動,則servlet容器首先要把JSP頁面(假設為test.jsp)轉化為Servlet代碼(test.java),再將其轉化為class文件(test.class文件);這種過程(編譯)會耗費時間
3、JSP容器負責調用從JSP轉換來的servlet,這些servlet負責提供服務相應用戶請求;如果用戶有多個請求,則容器會建立多個線程處理多個請求;
4、容器執行位元組碼文件(包括調用的servlet:formprocessor.java位元組碼),並將其結果返回到客戶端(返回的最終方式是有servlet輸出html格式的文件流)。
(2)jsp編譯原理擴展閱讀:
語言優點:
1、一次編寫,到處運行。除了系統之外,代碼不用做任何更改。
2、系統的多平台支持。基本上可以在所有平台上的任意環境中開發,在任意環境中進行系統部署,在任意環境中擴展。相比ASP的局限性JSP的優勢是顯而易見的。
3、強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多台伺服器進行集群和負載均衡,到多台Application進行事務處理,消息處理,一台伺服器到無數台伺服器,Java顯示了一個巨大的生命力。
4、多樣化和功能強大的開發工具支持。這一點與ASP很像,Java已經有了許多非常優秀的開發工具,而且許多可以免費得到,並且其中許多已經可以順利的運行於多種平台之下。
5、支持伺服器端組件。web應用需要強大的伺服器端組件來支持,開發人員需要利用其他工具設計實現復雜功能的組件供web頁面調用,以增強系統性能。JSP可以使用成熟的JAVA BEANS 組件來實現復雜商務功能。