servlet笔记

  1.每个jvm中都只有一个servlet实例,在分布式应用中对于同一个servlet类会有多个实例,但是每个jvm中还是只有一个该servlet的实例。

  2.一般在容器启动时找到servlet类文件时,servlet的生命周期开始,在容器启动时,它会寻找已经部署的web应用,然后开始搜索servlet类文件,也就是说容器是根据DD搜索类的。第二步加载类可能发生在容器启动时,也有可能发生在第一个客户使用时。

  3.在调用servlet的构造函数之后我们创建了一个对象,但因为还不具有servlet性(servletness),所以只是一个普通的对象,之后容器为servlet创建一个ServletConfig对象,用该对象作为init()的参数调用函数,这样操作之后servlet对象就完全变成了一个servlet。

  4.初始化方法init()有两个,一个有参数一个没有参数,在有参数的方法体中会调用没有参数的方法。如果要覆盖init方法,则覆盖没有参数的即可,但如果非要覆盖有参数的方法,那么最好要调用super.init(ServletConfig),不过这么做也没有必要。

  5.容器建立一个servlet时,它会读取DD,并未ServletConfig创建名/值对。

  6.初始化参数ServletConfig和ServletContext是部署时常量,可以在运行时得到这些参数,但是不能设置。

  7.《java servlet&jsp 经典实例》

  8.在web.xml中注册监听者,容器通过检查监听者类继承的接口明确要监听什么类型的事件。

  9.由于http连接不会久留,所以对于容器来说,每一个请求都来自于一个新的客户。p230、

  10.9的解决方法是使用会话ID,而交换会话ID可以通过cookie来实现。

  11.得到会话的方法有二,其一:通过请求对象request.getSession(),其二:通过与会话有关的监听接口的参数event.getSession()。

  12.交换会话ID的方法有二,其一:通过cookie;其二:通过URL重写。如果客户禁用了cookie,容器就会在客户发来的后续的请求时创建新的cookie对象,而且仍然会在响应中添加Set-Cookie首部行。但是如果客户没有禁用cookie,则容器会忽略下面的URL重写。

  13.

 

posted @ 2017-02-13 15:04  不吃陈皮  阅读(190)  评论(0编辑  收藏  举报