Duke's Bookstore(Servlet 版本)筆記

1 新增的event模型:通過設定Listener,可以在Servlet的初始化之前和之後做某些事情.這是事件模型在Servlet中的應用.

  在訪問/bookstore1/enter之後, ContextListener 構造了一個DB,並且把它放到ServletContext中去,這樣BookstoreServlet可以從Context中得到這個初始化的DB

 

  核心代碼如下:

 

  context = event.getServletContext();

 

  …………………………………..

 

  context.setAttribute("bookDB", bookDB);

 

  ContextListener 類的實現是很簡單的,只有: contextInitialized, contextDestroyed兩個方法

 

生存期事件:

 

  不單ServletContext的事件可以監聽,Session等的事件也可以監聽,分別爲:HttpSessionListener , ServletRequestListener

 

 

 

2 RequestDispatch :

 

  BookstoreServlet 中使用了RequestDispatch,代碼如下:

 

  RequestDispatcher dispatcher =

 

               getServletContext().getRequestDispatcher("/banner");

 

                                      

 

            if (dispatcher != null)

 

               dispatcher.include(request, response);

 

  查看web.xml,可知/banner 對應BannerServlet類.

 

  一個RequestDispatch就是一個普通的Servlet類.通常它的應用如下:一個小的Servlet類生成部分Response的結果,而另一個Servlet包含這個結果,進而構造一個Response.這個較小的Servlet類可以理解成網頁的模板.程序的Component.這樣,提高了Servlet的模塊化.

 

 讀完第一個BookstoreServlet的源碼

 

 

 

3 這時頁面有兩個連接,一個是書的信息,一個是Start Shopping

 

 

 

1 ) 點擊 書的信息 BookDetailsServlet

 

  Context中取出BookDB,根據Parameter查找記錄,然後列出記錄.並列出 添加到購物車和繼續購物兩個選項

 

  1 添加到購物車 CatalogServlet 設置購物車,並列出檢查購物車,買書,和書的信息

 

  2 檢查購物車 ShowCartServlet 根據request的值檢查,沒什麼新鮮

 

  3 其他Servlet都是這麼處理.

 

 

 

2 對於HttpServlet應該如此處理

 

 1 從response得到output stream

 

 2 填充resp的頭部信息

 

 3 寫body到output

 

 

 

4 Filter 過濾器

 

 概念:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章