博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlet工作流程
阅读量:6692 次
发布时间:2019-06-25

本文共 1573 字,大约阅读时间需要 5 分钟。

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文件名。

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

 

转载于:https://www.cnblogs.com/tanlei-sxs/p/10019937.html

你可能感兴趣的文章
Django支付宝自动转账功能(一)
查看>>
RxJava如何结合观察者与链式处理
查看>>
浮点型
查看>>
第七周项目2-体重检测系统
查看>>
[转]mmap和madvise的使用
查看>>
WPF入门教程系列四——Dispatcher介绍
查看>>
easyui 跳转页面语句
查看>>
「小程序JAVA实战」微信小程序简介(一)
查看>>
81.node.js前端html时页面格式错乱解决办法
查看>>
visio2010求交操作
查看>>
this与super关键字
查看>>
Word 2010 插入其他文件的方法
查看>>
iOS 动画篇 (三) CADisplayLink与CoreGraphics实现动画
查看>>
BZOJ4766: 文艺计算姬(Prufer序列)
查看>>
CSS选择器
查看>>
pip3 Fatal error in launcher: Unable to create process using '"' [转]
查看>>
关于linux的用户
查看>>
ECMAScript 5 —— 单体内置对象之Global对象
查看>>
ScriptManager的简单用法
查看>>
Some index files failed to download. They have …… or old ones used instead
查看>>