Dukes Bookstore(Servlet 版本)筆記

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- Dukes Bookstore(Servlet 版本)筆記 (http://www.webasp.net/article/23/22092.htm)
-- 作者:未知
-- 發佈日期: 2005-04-30

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 過濾器



 概念:



webasp.net