1. 程式人生 > >servlet+JSP學習筆記

servlet+JSP學習筆記

之前也學習了一段時間的Servlet和JSP,但是沒有實際操作,很短時間內就忘記了。最近從網上找了個很小的JSP+Servlet專案自己實現一下,希望能更加深刻的理解這兩項技術如何進行交換和使用。

按照自己的思維畫了一張圖,便於理解動態頁面在Web專案中執行過程如何進行操作的。

Tomcat

首先從Tomcat開始學習,在我的理解裡,Tomcat就像一個巨大的容器,許多Servlet在其中執行,同時這個容器還負責著對前端資料的接收與處理工作。當我們從前端輸入資料,或者傳送一個請求同時,這個請求將通過Tomcat自動處理,封裝後成為一個request物件,這個物件再傳入到內部的Servlet,同時,當我們後端對資料處理完成後,需要向前端進行輸出,Tomcat也提供了一個response物件進行這些資料的封裝。通過這個橋樑,就能完成前後端的互動,也就形成了實現動態響應的基礎。

同時,Tomcat也是一個Http伺服器,能提供管理平臺等功能,也能通過XML進行配置。

Servlet

Servlet可以看作一個個模組化的工具。在最近進行的學習中,有很多功能是低耦合的,很多模組彼此獨立。例如我們需要一個使用者模組進行網站的登入,註冊,還有諸多操作。那麼我們可以將它們歸位同一個Servlet。在之前實現過程中,我都習慣每一個功能使用一個Servlet,例如LoginServlet,RegistServlet等等,但隨著程式碼量的增多,發現重複程式碼過多,同時Servlet的數量巨大,非常難以修改維護。

所以我覺得應該將每個模組化作一個Servlet,這樣能夠便於模組管理。在前端進行資料封裝時,我們可以在其中儲存一個鍵值對“method = ???”當進入Servlet時,判斷方法的值,然後再為每個值定義一個方法即可完成在同一個Servlet處理不同功能。

<form class="form-horizontal" style="margin-top:5px;" action="${pageContext.request.contextPath}/UserServlet?method=userRegist" method="post">

例如這行程式碼,我們能夠看到,其提交位置為UserServlet下面的一個userRegist方法,而這個方法實際上也是一個Servlet的實現。

public String userRegist(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}

可以看出,這個方法和doGet非常相似,只是返回值不同。我們這裡返回值是一個String字串,通過返回這個地址。

action="${pageContext.request.contextPath}/UserServlet?method=userRegist"

再結合上面這行位置,就能夠跳轉到們所要返回的位置。這樣就不需要進行重定向操作。