Servlet原理学习笔记

什么是servlet: Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序。

servlet的作用: Servlet主要是驻留在 Web 服务器上,处理用户的请求和输出的响应,处理web页面和业务逻辑层的数据交流。

servlet容器的工作: 负责处理客户请求、把请求传送给Servlet并把结果返回给客户。

web应用的初始化工作: 解析 web.xml 文件 ---〉web.xml 对象中的属性设置到 Context 容器中---〉将Servlet 包装成 Context 容器中的 StandardWrapper。

为什么要将 Servlet 包装成 StandardWrapper 而不直接是 Servlet 对象? 这里 StandardWrapper 是 Tomcat 容器中的一部分,它具有容器的特征,而 Servlet 为了一个独立的 web 开发标准,不应该强耦合在 Tomcat 中。所有 web.xml 属性都被解析到 Context 中,所以说 Context 容器才是真正运行 Servlet 的 Servlet 容器。一个 Web 应用对应一个 Context 容器,容器的配置属性由应用的 web.xml 决定。

servlet生命周期: (1).在浏览器中输入一个 URL。Web 服务器配置文件确定该 URL 是否指向一个由运行于服务器上的 servlet 容器所管理的 servlet。(2).如果还没有创建该 servlet 的一个实例(一个应用程序只有一个 servlet 实例),那么该容器就加载该类,并将之实例化。该容器调用 servlet 上的 init()。(3).该容器调用 servlet 上的 service(),并在包装的 HttpServletRequest 和 HttpServletResponse 中进行传递。(4).该 servlet 通常访问请求中的元素,代表其他服务器端类来执行所请求的服务并访问诸如数据库之类的资源,然后使用该信息填充响应。(5).如果有必要,在 servlet 的有用生命结束时,该容器会调用 servlet 上的 destroy() 来清除它。

posted @ 2012-05-19 00:27  倒车  阅读(179)  评论(0)    收藏  举报