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快速向客户端提供各种动态内容。

Tomcat如何与Servlet协同工作

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

这允许servlet在各种环境中重用,或者为了相互之间异步开发组件 - 为了提高效率,可以重新考虑连接器,而不必对servlet代码本身进行任何更改,只要没做过主要改变。

Servlet生命周期

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

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

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

组件的组合

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值