Servlet 简介及其执行流程

来源:互联网 发布:java 自动打码 编辑:程序博客网 时间:2024/05/29 02:19
一、什么是Servlet?首先明确一点:先有Servlet后有JSP,JSP的前身是ServletServlet是在服务器上运行的小程序。一个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)方法

                                             
0 0
原创粉丝点击