首页 > 代码库 > Servlet 的原理----无脑笔记
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安装目录>>\conf\servlet.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()方法.
以上就是今天的笔记,好囧!看来还要多加练习,多记笔记才行了!
Servlet 的原理----无脑笔记