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 过滤器
概念:
