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 过滤器

 

 概念:

 

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