更新時間:2020-10-21 18:03:03 來源:動力節點 瀏覽1764次
JSP(全稱JavaServer Pages)是由Sun Microsystems公司主導創建的一種動態網頁技術標準。本文我們就來為大家介紹這門Java Web核心技術-JSP。
在 Servlet 組成的 MVC 中模型中,JSP 就代表著 View ,JSP控制著視圖顯示,一切邏輯在 Servlet(Controller) 和Model 中解決完畢后,轉發到 JSP 中生成視圖文件(HTML),大家也都知道在 Java 中寫 HTML 代碼是很麻煩的,因為有很多轉義字符需要轉義,所以人們想不如在 HTML 中寫 Java 算了,于是就誕生了JSP。
JSP部署于網絡服務器上,可以響應客戶端發送的請求,并根據請求內容動態地生成HTML、XML或其他格式文檔的Web網頁,然后返回給請求者。JSP作為JavaWeb核心技術以Java語言作為腳本語言,為用戶的HTTP請求提供服務,并能與服務器上的其它Java程序共同處理復雜的業務需求。
JSP將Java代碼和特定變動內容嵌入到靜態的頁面中,實現以靜態頁面為模板,動態生成其中的部分內容。JSP引入了被稱為“JSP動作”的XML標簽,用來調用內建功能。另外,可以創建JSP標簽庫,然后像使用標準HTML或XML標簽一樣使用它們。標簽庫能增強功能和服務器性能,而且不受跨平臺問題的限制。JSP文件在運行時會被其編譯器轉換成更原始的Servlet代碼。JSP編譯器可以把JSP文件編譯成用Java代碼寫的Servlet,然后再由Java編譯器來編譯成能快速執行的二進制機器碼,也可以直接編譯成二進制碼。
Jsp實際上可以看成是一種特殊的Servlet:
當jsp頁面第一次被訪問時,服務器會把jsp編譯成java文件(這個java其實是一個Servlet類);
然后再把java編譯成.class;
然后創建該類對象;
最后調用它的service()方法;
第二次請求同一jsp時,直接調用service()方法。
在Tomcat的work目錄下可以找到jsp對應的.java源代碼。
1、IE瀏覽器在訪問JSP頁面時,Web服務器是如何調用并執行一個jsp頁面的?(Servlet)
第一次:轉譯(翻譯) --> 編譯 --> 執行
第二次:執行
2、Web服務器在執行jsp頁面時,是如何把Jsp頁面中的html排版標簽發送到客戶端的?
out.print("<......>"); 或者 out.write("<......>");
3、Jsp頁面中的java代碼服務器是如何執行的?
服務器 --> .java文件 --> .class文件 --> 結果out回客戶端
4、Web服務器在調用jsp時,會給jsp提供一些什么java對象(內置對象)?
HttpSession、ServletConfig、ServletContent、request、response、out等等。
上面我們說了,JSP最后仍然會轉換為Java代碼,并且前面介紹的 scriplet 所定義的變量是局部變量,那么如果我想定義一個全局變量怎么辦呢,這就需要用到聲明,形如<%! int i=0;%> 注意這句代碼里就必須要有分號了。標簽類不僅可以定義變量,也可以定義一個函數。由此我們推斷出JSP的聲明規則:
1.JSP中聲明的變量和方法對應于Servlet中的實例方法和實例變量。這些將被同時請求該頁面的所有用戶所共享;
2.在使用變量或方法前須先定義(不是說聲明變量的位置在頁面中要處于使用變量的前面,而是指變量不聲明不能使用);
3.聲明的變量或方法的作用域為當前頁面或包含的頁面;
4.語句間以分號分隔。
以上就是對JavaWeb核心技術—JSP的簡單介紹,JSP技術本身還是很復雜的,簡單的一篇文章很難梳理清里面無數的知識,想要深入了解的小伙伴可以觀看本站的Java入門到精通教程,靜下心來慢慢體會JSP技術的神奇和奧妙。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習