一 與html的關系
1.提到jsp我第一反應就是html,但是他們是不一樣的。
2.HTML是超文本標記語言,使用微軟自帶的記事本或寫字板都可以編寫,主要用於編寫靜態頁面。什么靜態頁面呢?是在客戶端運行的程序、網頁、插件與組件,注意它是可以播放動態的視頻或者圖片的,靜態網頁的意思可以理解為拷貝到哪兒都可以運行。
3.jsp是java服務器網頁技術,必須通過發布到Tomcat等服務器上再運行轉化為servlet才行,當然它是動態頁面。
二 組成
1.jsp是有兩部分組成:
- 靜態部分:標准的HTML標簽、靜態的頁面內容,這些內容與靜態HTML頁面相同.
- 動態部分:Java程序控制的內容,這些內容由Java程序來動態生成,通過<%和%>把Java語言鑲嵌入html有頁面里
三 工作原理
- 當用戶訪問一個JSP頁面時,會向一個Servlet容器(Tomcat等)發出請求;
- 如果頁面有所改動,則servlet容器首先要把JSP頁面(假設為test.jsp)轉化為Servlet代碼(test.java),再將其轉化為class文件(test.class文件);這種過程(編譯)會耗費時間
- JSP容器負責調用從JSP轉換來的servlet,這些servlet負責提供服務相應用戶請求;如果用戶有多個請求,則容器會建立多個線程處理多個請求;
- 容器執行字節碼文件(包括調用的servlet:formprocessor.java字節碼),並將其結果返回到客戶端;(返回的最終方式是有servlet輸出html格式的文件流)
參考:http://www.cnblogs.com/mengyan/archive/2012/09/06/2672846.html