有关Servlet的外网讲解

转自这里An introduction to Tomcat servlet interactions

Servlet如何与Tomcat配合的?

One of the key requirements worked into the Servlet specification is that they only are expected to handle certain parts of the total data transaction process. For example, the servlet code itself will never listen for requests on a certain port, nor will it communicate directly with a client, nor is it responsible for managing its access to resources. Rather, these things are managed by Tomcat, the servlet container.

Servlet规范中的一项关键要求是,仅希望Servlet处理数据交互过程中的某一部分。例如Servlet代码本身永远不会在特定端口上侦听请求,也不会直接与客户端进行通信,也不负责对资源的访问。而是由Servlet容器——Tomcat管理这些事情。这样就可以在各种环境中重用servlet,或者使组件彼此异步开发-可以重构连接器以提高效率,而无需更改servlet代码本身,只要不做任何改动即可。进行更改。

Servlet生命周期

As managed components, servlets have a life cycle, which begins when the managing container loads the servlet class, usually in response to a request, and ends when the container closes the servlet by calling the “destroy” method. All the servlet’s activity between these two points is considered part of its life cycle.

作为受控组件,Servlet具有生命周期。从管理容器加载这个类开始,一般是响应一个请求时候,然后结束于容器调用Servlet的destroy方法关闭Servlet时候。这两个节点之间的活动就是Servlet的生命周期。

来看一个典型的Servlet运行在Tomcat上的例子讲解生命周期

这部分我就简略翻译,以免太意译了

  1. Tomcat通过他的一个connector从client接收到一个request
  2. Tomcat将这个request映射到进程的一个合适的Engine。这些Engine包含在其他element中,例如主机和服务器,这就是Tomcat搜索合适Engine的范围。
  3. 将请求映射到适当的servlet之后,Tomcat会检查该servlet类是否已加载。如果还没有,则Tomcat将servlet编译为Java字节码(可由JVM执行),并创建该servlet的实例。
  4. Tomcat通过调用其init方法来初始化servlet。该Servlet包含的代码能够读取Tomcat配置文件并采取相应的措施,并声明它可能需要的任何资源,以便Tomcat能够以有序的托管方式创建它们。
  5. 初始化servlet后,Tomcat可以调用servlet的service方法来处理请求,该请求将作为响应返回。
  6. 在生命周期中,Servlet和Tomcat可以通过listener类(监听器?)来进行通信,这些侦听器类监视Servlet的各种状态变化。Tomcat可以以多种方式检索和存储这些状态更改,并允许其他servlet访问它们,从而允许状态在单个或多个用户会话的范围内由给定上下文的各个组件维护和访问。实际操作中的此功能的一个示例是电子商务应用程序,该应用程序可以记住用户添加到购物车中的内容,并将该数据传递给结帐流程。
  7. Tomcat调用Servlet的destroy方法来平稳地删除Servlet。该操作由正在侦听的状态更改触发,或者由传递给Tomcat的外部命令取消部署Servlet的上下文或关闭服务器触发。

https://stackify.com/spring-mvc/ 这篇也很好只是稍微有些难懂,抽空再看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值