1.加载Servlet类

类加载器负责加载servlet类。 当Web容器接收到servlet的第一个请求时,将加载servlet类。

2.创建Servlet实例

Web容器在加载servlet类之后创建一个servlet的实例。servlet实例在servlet生命周期中只创建一次。

3.调用init方法

Web容器在创建servlet实例后调用init方法一次。 init方法用于初始化servlet。 它是javax.servlet.Servlet接口的生命周期方法。

4.调用service方法

每当接收到servlet的请求时,Web容器都会调用service方法。如果servlet未初始化,则遵循上述前三个步骤,然后调用service方法。 如果servlet被初始化,它调用service方法。 请注意,servlet仅初始化一次。

5.调用destroy方法

从服务中删除servlet实例之前,Web容器调用destroy方法。它使servlet有机会清理所有资源,例如内存,线程等。

服务器检查servlet是否为第一次被请求?

如果是第一次被请求,则 -
•加载servlet类。
•实例化servlet类。
•调用init方法传递ServletConfig对象 如果不是第一次被请求,则 -
•调用service方法传递请求和响应对象 Web容器在需要删除servlet时调用destroy方法,例如:在停止服务器或取消部署项目时。 Web容器如何处理servlet请求? Web容器负责处理请求。下面来看看看它如何处理请求。
•将请求与web.xml文件中的servlet进行映射。
•为请求创建请求和响应对象
•调用线程上的service方法
•公共service方法内部调用受保护的service方法
•受保护的service方法根据请求的类型调用doGet方法。
•doGet方法生成响应,并将其传递给客户端。
•发送响应后,Web容器将删除请求和响应对象。线程包含在线程池中或删除取决于服务器实现

公共service方法将ServletRequest对象转换为HttpServletRequest类型和ServletResponse对象转为HttpServletResponse类型。然后调用传递这些对象的service方法。

受保护的service方法检查请求的类型,如果请求类型为get,则调用doGet方法,如果请求类型为post,则调用doPost方法
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
String method = req.getMethod();
if(method.equals("GET"))
{
long lastModified = getLastModified(req);
if(lastModified == -1L)
{
doGet(req, resp);
}
....
//rest of the code
}
}

打war包

jar -cvf projectname.war *

  

这里,-c用于创建文件-v生成详细输出,-f用于指定war文件名。

*(星号)符号表示此目录的所有文件(包括子目录)。

Servlet工作流程的更多相关文章

  1. [Servlet]Servlet工作流程及注意事项

    Servlet工作过程 采用Servlet完成Web实际的工作流应用程序是通过Tomcatserver公布服务,client与server遵循的端部之间的相互作用Http议完毕的. 详细工作流程例如以 ...

  2. Tomcat与Servlet工作流程

    什么是Tomcat? Tomcatserver是一个免费的开放源码的Web 应用server,属于轻量级应用server. 什么是Servlet? Servlet是在server上执行的小程序.,说白 ...

  3. Cookie&Seesion会话 共享数据 工作流程 持久化 Servlet三个作用域 会话机制

    Day37 Cookie&Seesion会话 1.1.1 什么是cookie 当用户通过浏览器访问Web服务器时,服务器会给客户端发送一些信息,这些信息都保存在Cookie中.这样,当该浏览器 ...

  4. struts2工作流程

    struts2的框架结构图 工作流程 1.客户端请求一个HttpServletRequest的请求,如在浏览器中输入http://localhost: 8080/bookcode/Reg.action ...

  5. 了解SpringMVC框架及基本工作流程

    传统原生的JSP+Servlet在开发上过程上虽然简单明了,JSP页面传递数据到Servlet,Servlet整理数据(逻辑开发)或者从数据库提取数据接着再转发到JSP页面上,但是其似乎只能止步于此, ...

  6. Servlet工作原理

    Servlet生命周期分为三个阶段: 1,初始化阶段  调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...

  7. Struts2的工作原理及工作流程

    众所周知,Struts2是个非常优秀的开源框架,我们能用Struts2框架进行开发,同时能 快速搭建好一个Struts2框架,但我们是否能把Struts2框架的工作原理用语言表达清楚,你表达的原理不需 ...

  8. SSH三大框架的各自工作流程

    一.Struts2的工作流程:1.用户在客户端发起请求,客户端会初始化一个servlet容器请求:2.servlet容器把请求会传递给context容器,context容器找到目标web工程.3.进行 ...

  9. SpringMVC第一篇【介绍、入门、工作流程、控制器】

    什么是SpringMVC? SpringMVC是Spring家族的一员,Spring是将现在开发中流行的组件进行组合而成的一个框架!它用在基于MVC的表现层开发,类似于struts2框架 为什么要使用 ...

随机推荐

  1. 【DM642学习笔记四】flash烧写过程——错误记录…

    (欢迎批评指正) 一,打开.cdd配置文件时出错: 解决:在FlashBurn配置窗口中,Conversion Cmd一栏可不用管:      菜单Program—Download FBTC,load ...

  2. 第一个SpringBoot插件-捕获请求并且支持重新发起

    SpringBoot 插件入门 简介 公司用的是SpringBoot,api框架用的是swagger-ui,确实用的不错,但是在使用过程中发现一个问题,就是当前端正式调用的时候,如果参数一多的话模拟请 ...

  3. 修改CentOS6.5主机名引起MySQL5.6.35服务问题

    本来是心血来潮修改CentOS6.5的主机名 /****** 修改CentOS6.5默认主机名 ******/ .备份系统网络配置文件 [root@localhost ~]# cp /etc/sysc ...

  4. WPF DataGrid动态生成列的单元格背景色绑定

    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Column.DisplayInde ...

  5. It\'s A Good Day To Die

    [00:01.82]Courage! Duty! Honor! [00:05.67]We call upon our troopers [00:07.90]In this our darkest ho ...

  6. UVA1391/LA3713 Astronauts

    题意:有A.B.C3个任务分配给n个宇航员,其中每个宇航员恰好分配一个任务.假设n个宇航员的平均年龄为x,只有年龄大于x的才能领取A任务:只有年龄严格小于x的才能领取B任务,而任务C没有限制.有m对宇 ...

  7. input光标错位

    文档结构 <div class="noteWrap"> <input type="text" placeholder="写留言&qu ...

  8. logo 编程

    玩了一把logo语言,好学易懂,小朋友有兴趣是个挺不错的玩意.当然也可用于一些机器人等控制 apt install ucblogo ;一个多边形 l 边长 n 边数 to sj :l :n repea ...

  9. innerhtml outhtml innerText outText 区别

    innerHTML获取标签内的HTML outerHTML获取标签及标签内的HTML innerText 设置或获取位于对象起始和结束标签内的文本 outerText 设置(包括标签)或获取(不包括标 ...

  10. HDU3887 Counting Offspring [2017年6月计划 树上问题03]

    Counting Offspring Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...