Servlet 的原理----无脑笔记

                                                              Servlet 的原理

  最近在啃<<独门架构:Java Web开发应用详解>>.好记性不如烂笔头,更何况自己脑子也不怎么好使.做下笔记,加深印象.

正文:

1.所有的Servlet类必须实现Servlet接口(接口在servlet-api.jar中可以找到)

 

2.Servlet程序的层次结构:

   Servlet1,Servlet2.....------>继承HttpServlet------>继承GenericServlet-------->实现Servlet

 

3.让Servlet支持所有的HTTP方法:

    a.将处理HTTP协议方法的代码写在一个方法中,或是写在其中一个doXXX()方法中,然后再其他的doXXX()方法中调用(就是覆盖每一个doXXX()方法)

    b.直接覆盖HttpServlet类中的servlet方法(如果在Servlet中要支持所有的HTTP方法,建议用这种方法处理)

 

4.init()方法在建立Servlet对象时调用,用于为Servlet做一些初始化工作,其中config参数可以读取Servlet的配置信息(web.xml)

 

5.destroy()当一个Web应用程序被卸载或重新启动之前,destroy被调用.

 

6.运行Servlet的三要素:Servlet类,web.xml,Servlet引擎.

 

7.Servlet引擎流程

   (1)在接收到客户端的某个HTTP请求后,Servlet引擎获得了一个URL,并对其进行分析

   (2)在<<Tomcat安装目录>>confservlet.xml查找path为/xxx的<Context>标签(也可以在webapps目录中去找),获得doBase所指的web应用程序的目录或war包

   (3)根据上一步找到的web应用程序的具体位置,找到web.xml并读取其中内容,在获取信息后,将从URL中的信息跟web.xml中的信息进行比较,相匹配就可以获取相应的Servlet类

   (4)获取相应的类后,Servlet引擎就会动态装载这个Servlet类

   (5)在创建Servlet对象后,开始执行相应的方法.先调用init(),然后开始调用servlet()方法.在调用servlet方法时,Servlet引擎会创建两个对象,他们分别实现了HttpServletRequest(处理客户端请求)和HttpServletResponse(向客户端发送响应信息)接口

   (6)在Web应用程序被卸载或重新启动之前,Servlet引擎将卸载其中的Servlet,这是引擎将调用destroy()方法.

 

以上就是今天的笔记,好囧!看来还要多加练习,多记笔记才行了!

原文地址:https://www.cnblogs.com/LIFE-bug/p/4103813.html