servlet 与 tomcat 之间的关系

虽然它的灵活配置和支持技术的互操作性使Apache Tomcat在许多情况下充当Web应用服务器,但Tomcat主要是Java Servlet容器。

利用Java Servlet和JSP API的实现,Tomcat能够接收来自客户端的请求,动态编译一个容器管理的Java类来处理相关应用程序上下文中指定的请求,并将结果返回给客户端。这种生成动态内容的方法实现了对请求的极其快速、线程化、平台无关的处理。

此外,由于Java Servlet规范被设计用于与所有其他主要Java Web技术的互操作性,所以托管在Tomcat服务器上的servlet能够利用Tomcat提供给它的任何资源。Tomcat的嵌套分层XML配置文件允许极其细粒度的资源访问控制,同时保持松散耦合、易于部署以及逻辑的、可读的体系结构描述。

在本文中,我们将了解Apache Tomcat如何使用Servlets向客户机快速交付各种动态内容。

厌倦乏味,容易出错的部署?Tcat部署包允许您通过单击将一组servlet和web应用程序部署到多个Tomcat实例。今天试试Tcat!

  1. Tomcat如何与servlet一起工作

Servlet规范中的关键要求之一是,它们只处理整个数据事务处理的某些部分。例如,servlet代码本身永远不会侦听特定端口上的请求,也不会直接与客户机通信,也不负责管理对资源的访问。相反,这些东西是由Tomcat(servlet容器)管理的。

这允许servlet在多种环境中被重用,或者允许组件彼此异步开发——连接器可以被重新分解,从而提高效率,而不需要对servlet代码本身进行任何更改,只要不进行重大更改。

作为托管组件,servlet有一个生命周期,该生命周期从管理容器加载servlet类开始,通常是响应请求,当容器通过调用“destroy”方法关闭servlet时结束。所有servlet之间的活动被认为是其生命周期的一部分。

在Tomcat上运行的典型servlet的生命周期可能看起来像这样:

  • Tomcat通过一个连接器接收来自客户端的请求。
  • Tomcat将此请求映射到适当的引擎进行处理。这些引擎包含在其他元素中,例如主机和服务器,这些元素限制了Tomcat搜索正确引擎的范围。
  • 一旦请求已映射到适当的servlet,Tomcat将检查该servlet类是否已加载。如果没有,Tomcat将servlet编译成Java字节码,Java字节码可由JVM执行,并创建servlet的实例。
  • Tomcat通过调用它的init方法初始化servlet。servlet包括能够读取Tomcat配置文件并相应地进行操作的代码,以及声明可能需要的任何资源,以便Tomcat能够以有序的、受管理的方式创建它们。
  • 初始化servlet之后,Tomcat可以调用servlet的服务方法来处理请求,请求将作为响应返回。
  • 在servlet的生命周期中,Tomcat和servlet可以通过使用监听器类进行通信,监听器类监视servlet的各种状态变化。Tomcat可以以各种方式检索和存储这些状态变化,并允许其他servlet访问它们,从而允许在单个或多个用户会话的跨度内由给定上下文的各种组件维护和访问状态。此功能的一个实际例子是电子商务应用程序,它记住用户添加到购物车中的内容,并能够将此数据传递到结账过程。
  • Tomcat调用servlet的销毁方法来平滑删除servlet。这个动作是由正在侦听的状态改变触发的,或者由传递给Tomcat的外部命令触发,以解除部署servlet的上下文或关闭服务器。

构件组合

使用servlet和它们结合静态HTML页面和JSP页面访问的资源,它们包含HTML和Java代码的混合,并且可以使用本地标记库或自定义标记调用servlet方法,Tomcat能够向用户呈现动态、安全、持久的Web应用程序。应用。

例如,用户可以访问一个页面,其中动态用户界面对象是用Ajax、CSS和HTML5与DOM交互的客户端处理的,而用户信息是通过与servlet方法交互的JSP标签从数据库中拉取的。这允许页面的表示与任何业务逻辑完全分离,从而提高安全性和设计灵活性。

猜你喜欢

转载自blog.csdn.net/u010325193/article/details/83960800