標籤: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一樣,都是一個從認識到熟練使用的過程,不斷使用,不斷研究,總會為我所用。