一、什么是Servlet? 首先明确一点:先有Servlet后有JSP,JSP的前身是Servlet Servlet是在服务器上运行的小程序。一个Servlet就是一个Java类,并且可以通过“请求--响应”编程模式来访问这个驻留在服务器内存里的Servlet程序
二、Tomcat容器等级:Tomcat容器分为四个等级, 1. Container 容器,集装箱 2.Engine 引擎容器 3.Host 主机() 4.Servlet容器(tomcat最低级别的容器)里面包含了一个或多个Context —— Context (上下文,背景,环境) 一个context对应一个web项目 —— Wrapper 容器里的封装部分。(Tomcat容器包含4个等级,从高到低分别是Container容器,Engine引擎容器、Host主机容器与Servlet容器,其中Servlet的容器管理Context容器(称为上下文),一个Context对应一个Web工程)
三、Servlet层级关系:Servlet(接口)-->GenericServlet(抽象类,与协议无关的Servlet)-->HttpServlet(抽象类,实现了Http协议的Servlet)-->Custom Servlet(自定义的Servlet)。 创建一个Servlet需要经过以下步骤: (1)新建一个Java类,继承“javax.servlet.http.HttpServlet”; (2)实现“doGet()”方法和“doPost()”方法; (3)在应用配置文件“web.xml”中注册新建的Servlet;xml文件配置:Servlet接口(init(),service()destory())GenerciServlet(协议无关 抽象类) - HttpServlet (Http协议 doGet doPost 抽象类)WebXml配置: <Servlet> <Servlet-name>HelloServlet<Servlet-name> <Servlet-class>所在包.HelloServlet</Servlet-class> <Servlet> <Servlet-mapping> <Servlet-name>HelloServlet</Servlet-name> <url-patern>/虚拟路径</url-patern> </Servlet-mapping>四、Servlet执行流程1.客户端发送请求给服务器。 2.服务器开始接受,先判断该请求的servlet实例是否存在,如果不存在先装载一个servlet类并创建实例。如果存在则直接调用该servlet的service方法,之后进行判断是调用doGet方法还是doPost方法。 3.servlet创建实例后,调用init方法进行初始化。之后调用servce方法,判断是调用doGet方法还是doPost方法。 4.最后判断服务是否关闭,如果关闭则调用destroy方法。(开始----Servlet实例是否存在----装载Servlet类并创建实例 构造方法----调用init(Servlet)类并创建实例----调用service(Servlet Requst Servlet Response)方法----服务器关闭-----调用Destroy的方法)访问Servlet流程1、提交超链接请求后,服务器会在web.xml中的<servlet-mapping>寻找对应的url(url-pattern)地址,然后得到这个servlet的名称。 2、得到名称后,在servlet中寻找名称相同的标签,然后得到处理类(servlet-class文件) 3、进入servlet处理类,根据请求方式(get或者post)执行d(oGet或者doPost)方法