Tomcat servlet 交互简介

Tomcat Servlet交互简介

尽管它的灵活配置和与支持技术的互操作性使Apache Tomcat在许多情况下都可以充当Web应用程序服务器,但是Tomcat主要是Java servlet容器。

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

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

在本文中,我们将研究Apache Tomcat如何使用Servlet快速向客户端交付各种动态内容。

厌倦了乏味且容易出错的部署? 使用Tcat 部署软件包,您只需单击一下即可将Servlet和Web应用程序集部署到多个Tomcat实例。 立即尝试Tcat !

Tomcat如何与Servlet配合使用
Servlet规范中的一项关键要求是仅希望它们处理总数据事务处理过程的某些部分。例如,servlet代码本身永远不会在特定端口上侦听请求,也不会直接与客户端进行通信,也不负责管理对资源的访问。而是由Servlet容器Tomcat管理这些事情。

这样就可以在各种环境中重用servlet,或者使组件彼此异步开发-可以重构连接器以提高效率,而无需更改servlet代码本身,只要不做任何改动即可。进行更改。

Servlet生命周期
作为受管组件,Servlet具有生命周期,通常从生命周期开始,直到管理容器加载Servlet类,并在容器通过调用“ destroy”方法关闭servlet时结束。这两个点之间的所有servlet活动都被视为其生命周期的一部分。

在Tomcat上运行的典型servlet的生命周期可能如下所示:

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

例如,用户可能会访问一个页面,其中动态用户界面对象是通过AJAX,CSS和HTML5与DOM交互在客户端进行处理的,而用户信息是通过与Servlet方法交互的JSP标记从数据库中提取的。这样一来,页面的显示就可以与任何业务逻辑完全分开,从而提高了安全性和设计灵活性。

引用文献:https://www.mulesoft.com/tcat/tomcat-servlet

posted @ 2021-02-23 17:14  忆尘不散  阅读(141)  评论(0)    收藏  举报