`

tomcat servlet

 
阅读更多
Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件. Servlet最常见的用途是扩展Java Web服务器功能,提供非常安全的,可移植的,易于使用的CGI替代品.下面我们描述一下Tomcat与Servlet是如何工作的,首先看下面的时序图.

       

1、1、Web客户向Servlet容器(Tomcat)发出Http请求

2、Servlet容器分析客户的请求信息

3、Servlet容器创建一个HttpRequest对象,将客户请求的信息封装到这个对象中

4、Servlet容器创建一个HttpResponse对象

5、Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数

     传给 HttpServlet对象

6、HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息

7、HttpServlet调用HttpResponse对象的有关方法,生成响应数据

8、Servlet容器把HttpServlet的响应结果传给Web客户



看到以上这个过程,那么我们会问Servlet容器与HttpServlet又是基于什么样的约定进行交互的?

HttpServlet对象的生命周期如何?

首先我们来了解一下Servlet对象的API

Servlet的框架是由两个Java包组成的:javax.servlet与javax.servlet.http。在javax.servlet包中定义了所有

的Servlet类都必须实现或者扩展的通用接口和类。在javax.servlet.http包中定义了采用Http协议通信的

HttpServlet类。Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这个接口。

在Servlet接口中定义了5个方法,

其中3个方法代表了Servlet的生命周期:

1、init方法:负责初始化Servlet对象。

2、service方法:负责响应客户的请求。

3、destroy方法:当Servlet对象退出生命周期时,负责释放占用的资源。

      下面我们来看下面的类图。

在javax.servlet.Servlet接口中有一些do方法,它们对应的是http的请求方式。下面我们就结合类图来

描述一下HttpServlet对象的生命周期

一、创建Servlet对象的时机

1、Servlet容器启动时:读取web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,

      同时将ServletConfig对象作为参数来调用Servlet对象的init方法。

2、在Servlet容器启动后:客户首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对

      象,如果没有则创建它,然后根据客户的请求创建HttpRequest、HttpResponse对象,从而调用Servlet

     对象的service方法。

3、Servlet的类文件被更新后,重新创建Servlet

      Servlet容器在启动时自动创建Servlet,这是由在web.xml文件中为Servlet设置的<load-on-startup>属性决定

      的。从中我们也能看到同一个类型的Servlet对象在Servlet容器中以单例的形式存在。

二、销毁Servlet对象的时机

1、Servlet容器停止或者重新启动:Servlet容器调用Servlet对象的destroy方法来释放资源。

以上所讲的就是Servlet对象的生命周期。那么Servlet容器如何知道创建哪一个Servlet对象?

Servlet对象如何配置?实际上这些信息是通过读取web.xml配置文件来实现的。

我们来看一下web.xml文件中的Servlet对象的配置节信息

-------------------------------------------

<servlet>

    <servlet-name>action<servlet-name>

    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

    <init-param>

        <param-name>config</param-name>

        <param-value>/WEB-INF/struts-config.xml</param-value>

    </init-param>

    <init-param>

        <param-name>detail</param-name>

        <param-value>2</param-value>

    </init-param>

    <init-param>

        <param-name>debug</param-name>

        <param-value>2</param-value>

    </init-param>

    <load-on-startup>2</load-on-startup>

</servlet>

<servlet-mapping>

    <servlet-name>action</servlet-name>

    <url-pattern>*.do</url-pattern>

</servlet-mapping>

--------------------------------------------

下面对上面的配置节信息进行解析

servlet-name:Servlet对象的名称

servlet-class:创建Servlet对象所要调用的类

param-name:参数名称

param-value:参数值

load-on-startup:Servlet容器启动时加载Servlet对象的顺序

servlet-mapping/servlet-name:要与servlet中的servlet-name配置节内容对应

url-pattern:客户访问的Servlet的相对URL路径

当Servlet容器启动的时候读取<servlet>配置节信息,根据<servlet-class>配置节信息创建Servlet对象,

同时根据<init-param>配置节信息创建HttpServletConfig对象,然后执行Servlet对象的init方法,并且根据

<load-on-startup>配置节信息来决定创建Servlet对象的顺序,如果此配置节信息为负数或者没有配置,那么

在Servlet容器启动时,将不加载此Servlet对象。

当客户访问Servlet容器时,Servlet容器根据客户访问的URL地址,通过<servlet-mapping>配置节中的<url-pattern>

配置节信息找到指定的Servlet对象,并调用此Servlet对象的service方法。
<Tomcat与Java Web 技术详解>
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Tomcat Servlet配置文件

    ### Tomcat Servlet配置详解 #### 一、Tomcat配置文件概览 在了解Tomcat的配置文件之前,我们首先需要明确这些配置文件的作用及其位置。Tomcat作为一个流行的Java Web服务器,其配置主要由以下几个文件控制: 1. ...

    汽车租赁系统的Tomcat servlet 实现

    在构建汽车租赁系统时,Tomcat Servlet 是一个关键的技术组件,它为系统提供了一个高效、可扩展的Web服务器环境。Tomcat 是Apache软件基金会的Jakarta项目中的一个核心项目,是一个开源的Java Servlet容器,实现了...

    Java+MyEclipse+Tomcat Servlet提交表单和数据库简单操作

    该资源主要参考博客http://blog.csdn.net/eastmount/article/details/45725077完成,是关于Java+MyEclipse+Tomcat (四)Servlet提交表单和数据库操作。其中包括两个资源,一个是Servlet简单提交表单并获取表单结果的...

    Tomcat Servlet API

    【标题】"Tomcat Servlet API"涉及的知识点涵盖了Java服务器端开发的核心技术,特别是使用Tomcat作为应用服务器时,对Servlet API的深入理解和应用。Servlet是Java Web开发的基础,它提供了一种标准的方法来扩展Web...

    Tomcat Servlet阶段性总结思维导图

    Tomcat Servlet阶段性总结思维导图

    Tomcat Servlet oracle JDBC 实现登录的例子

    本示例将深入探讨如何使用Tomcat服务器、Servlet、Oracle数据库和JDBC(Java Database Connectivity)来实现一个简单的用户登录功能。下面,我们将详细讲解这个过程中的关键知识点。 1. **Tomcat服务器**: Tomcat...

    S06-tomcat之servlet内存马1

    "S06-tomcat之servlet内存马1" 在 Tomcat 中,Servlet 内存马是一种特殊的 Servlet,它可以动态注册 Tomcat 组件,实现内存马攻击。下面将对 Servlet 内存马的工作原理和实现机制进行详细的分析和解释。 Servlet ...

    Tomcat servlet 配置

    Tomcat 和 servlet的配置 和 简单入门案列

    java,myeclipes ,tomcat servlet jsp学习笔记

    【Java学习笔记】这篇学习笔记主要涵盖了Java开发中的一些基础操作和配置,特别是使用Eclipse作为IDE,结合Tomcat服务器进行Servlet和JSP开发时的关键点。以下是对这些知识点的详细说明: 1. **Eclipse快捷键配置**...

    3-6Tomcat处理源码实现与异步Servlet源码实现(1).mp4

    3-6Tomcat处理源码实现与异步Servlet源码实现(1).mp4

    MyEclipse+Tomcat_+_Servlet开发

    【MyEclipse+Tomcat+Servlet开发】是一个关于使用MyEclipse集成开发环境与Tomcat应用服务器进行Servlet程序开发的教程。在当前的Web项目开发中,Java仍然是主流语言,因此掌握Java项目开发技能至关重要。虽然全面...

    在Tomcat下JSP、Servlet和JavaBean环境的配置

    在开发Web应用时,我们经常会使用到Apache Tomcat服务器,它是Java Servlet和JavaServer Pages(JSP)的开源实现。本篇文章将详细讲解如何在Tomcat环境下配置JSP、Servlet和JavaBean,以便进行Web应用的开发和调试。...

    最新版 tomcat 9.0.10

    这是Apache Tomcat Servlet /JSP容器的文档包的顶级入口点。Apache Tomcat 9版本实现了Java社区过程中的Servlet 4和JavaServer页面2.3规范,并包含了许多额外的特性,使其成为开发和部署Web应用程序和Web服务的有用...

    Tomcat下Servlet的配置

    【Tomcat下Servlet的配置】涉及的是在Apache Tomcat服务器上部署和运行Servlet的基本步骤,这对于初学者来说是一项重要的技能。Servlet是Java编程语言中用于扩展服务器功能的接口,常用于构建动态web应用。 首先,...

    tomcat中Servlet的工作机制详细介绍

    在研究Servlet在tomcat中的工作机制前必须先看看Servlet规范的一些重要的相关规定,规范提供了一个Servlet接口,接口中包含的重要方法是init、service、destroy等方法,Servlet在初始化时要调用init方法,在销毁时要...

    servlet-api.jar

    servlet-api.jar

    基于 MySQL+Tomcat+Servlet+JSP 的简单作业管理系统.zip

    基于 MySQL+Tomcat+Servlet+JSP 的简单作业管理系统 基于 MySQL+Tomcat+Servlet+JSP 的简单作业管理系统 基于 MySQL+Tomcat+Servlet+JSP 的简单作业管理系统 基于 MySQL+Tomcat+Servlet+JSP 的简单作业管理系统 基于...

    图解 Tomcat 体系结构

    Apache Tomcat 是一款非常著名的开源 Servlet/JSP 容器。 Apache Tomcat 是一款非常著名的开源 Servlet/JSP 容器,被用做 Java Servlet 和 JavaServer Pages 技术的官方参考实现。如果您要了解这两种技术的细节可以...

    tomcat的servlet-api

    java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包...

Global site tag (gtag.js) - Google Analytics