開啟 J2EE(四)—JSP及運行原理

來源:互聯網
上載者:User

標籤:style   class   blog   code   java   http   

JSP之瞭解


全稱Java Server Pages,通過在HTML中嵌套Java代碼實現動態網頁。

可以從下面四個方面去認識一下JSP:

1.動態內容範本

動態HTML,接受處理客戶的請求,可以填充不同的商務邏輯。

2.使用定製的Java代碼擴充HTML

本質是對標籤的動態更新。JSP產生的標籤代碼可以是HTML也可以是XML等其它標籤語言。

3.被編譯成Servlet

本質是Servlet,在開發階段JSP是一種文本的指令碼的基於模板化的語言,運行時會被編譯成Servlet的格式,執行的生命週期和Servlet完全一致。

4.工作劃分為內容製作和程式開發

HTML或XML可以通過其它工具開發JSP內容的工作,動態實現的用JSP本身的標記去開發,例如增加指令和行為來擴充動態內容的部分。

 

請求處理過程

  我們知道JSP的實質還是Servlet,JSP的不同之處在於JSP是把Java代碼嵌套到HTML代碼中,雖然是嵌套在HTML中,但是JSP還是服務端的),因為JSP要經過JSP容器(例如Tomcat,作用就是將JSP轉化為Servlet)的編譯(編譯成Class檔案),再根據這些動態代碼的運行結果產生對應的HTML代碼,最終在瀏覽器中以HTML形式顯示出來。

  可以通過這樣一個流程圖表示出來:



從登入開始

 

  剛才說到JSP是在HTML中嵌套Java代碼實現動態網頁,但是當HTML頁面過大,且存在很多不需要經過容器的靜態請求時,在HTML中嵌套Java代碼,在經過一遍上面所述的運行過程,整體速度顯然會有影響,為了快速方便地進行動態網站的開發,JSP做了很多改進,使其成為快速建立跨平台的動態網站的首選。


  簡單的登陸實現:


  1.登陸頁面Login.HTML

  

<p><form  action="LoginCheck.jsp" method="post">  </p><p>     使用者名稱: <input type="text"name="ID"><br>  </p><p>     密 碼: <inputtype="text" name="PWD" ><br>  </p><p>     <input type="submit"value="Login"><br>  </p><p><form></p>
 

  2.登陸驗證LoginCheck.JSP


<%if(request.getParameter("ID") != null &&request.getParameter("PWD") != null) {  String ID =request.getParameter("ID");  String PWD =request.getParameter("PWD");  if (ID.equals("a")&& PWD.equals("a")) {                  %>     登入成功!    <%  }  else {    %>    登入失敗!    <%   } }%>


什麼時候用Servlet,什麼時候用JSP?


  聯絡:本質上都是Servlet
  比較:

    1.Servlet:處理商務邏輯(只要與資料庫進行互動)方便簡單;顯示內容給使用者繁瑣。
    2.JSP:顯示內容給使用者簡單方便;處理商務邏輯(只要與資料庫進行互動)繁瑣 。


  綜上可以說明Servlet和JSP雖然說實現的功能一樣,但是他們的優缺點是互補的,所以一般情況下做都是利用JSP和Servlet一

起使用,達到了一個相輔相成的狀態。

  比如:完成註冊功能,首先顯示註冊頁面給瀏覽器,用JSP實現(reg.jsp),填寫完註冊資訊提交,用Servlet來實現(RegServlet),註冊失敗又該顯示錯誤資訊和註冊頁面,用JSP來實現(reg.jsp);註冊成功該顯示成功資訊和登入頁面用JSP來實現(login.jsp) 。


總結

    JSP和Servlet在開始理解上沒有什麼難度(也因為有了B/S的基礎了),在實現Servlet和JSP這過程中,對Eclipse,對Tomcat,等等這些工具的配置和使用,各種版本的相容,主要是這些問題,原因還是出在自己的不熟悉,不過就像當初使用UML工具,使用VS一樣,都是一個從認識到熟練使用的過程,不斷使用,不斷研究,總會為我所用。





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.