- 浏览: 190230 次
- 性别:
- 来自: 上海
文章分类
最新评论
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 技术详解>
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的四种基于HTTP协议的Connector性能比较
2017-11-28 10:39 538今天在osc上看到对Tomcat的四种基于HTTP协议的Con ... -
Jetty项目简介
2016-11-07 11:28 449jetty是一个开源、基于标准、全功能实现的Java服务器。它 ... -
windows7 64位下git和tortoisegit的安装和使用
2016-09-08 11:35 1561git https://github.com/git-for- ... -
ActiveMQ的集群多种部署方式
2016-08-15 16:56 680ActiveMQ的多种部署方式 ... -
待查看
2016-08-02 09:41 4071tair 2 tddl 3hsf 4 分库分表 pmd ... -
redis 原理
2016-07-10 14:50 8381 什么是redis redis是一个key-value存储 ... -
mybatis 帮助文档
2016-04-22 11:01 512http://www.mybatis.org/mybatis- ... -
Zabbix 监控
2016-04-11 09:54 428 -
jvm实时监控工具
2016-04-09 09:35 472 -
redis学习(java调用方式)
2016-04-07 17:56 490【redis数据结构 – 简介 ... -
SonarQube代码质量管理平台安装与使用
2016-03-21 16:13 514代码质量管理工具 http://blog.csdn.net/h ... -
jboss web服务器
2016-03-17 14:15 447 -
cat监控
2016-03-16 15:22 489 -
activeMq分发策略,请求应答
2016-02-16 10:41 701 -
Eclipse下使用TODO的方法
2016-01-22 13:48 804下面是在Eclipse下使用TODO的方法。 ------- ... -
zookeeper
2015-12-07 20:29 432zookeeper -
Xshell会话共享实现多台服务器同步操作
2015-11-30 17:50 25281. 打开终端Xshell, 菜单栏View -> 勾 ... -
Tomcat出现 PermGen space解决方案
2015-06-10 16:06 343PermGen space的全称是Permanent Gene ... -
eclipse 代码注释项
2015-06-09 09:03 486comments files:新建文件时候的文件注释,在pac ... -
跨数据库事务研究
2015-05-12 11:16 873两种方案: 1、分布式 ...
相关推荐
### Tomcat Servlet配置详解 #### 一、Tomcat配置文件概览 在了解Tomcat的配置文件之前,我们首先需要明确这些配置文件的作用及其位置。Tomcat作为一个流行的Java Web服务器,其配置主要由以下几个文件控制: 1. ...
在构建汽车租赁系统时,Tomcat Servlet 是一个关键的技术组件,它为系统提供了一个高效、可扩展的Web服务器环境。Tomcat 是Apache软件基金会的Jakarta项目中的一个核心项目,是一个开源的Java Servlet容器,实现了...
该资源主要参考博客http://blog.csdn.net/eastmount/article/details/45725077完成,是关于Java+MyEclipse+Tomcat (四)Servlet提交表单和数据库操作。其中包括两个资源,一个是Servlet简单提交表单并获取表单结果的...
【标题】"Tomcat Servlet API"涉及的知识点涵盖了Java服务器端开发的核心技术,特别是使用Tomcat作为应用服务器时,对Servlet API的深入理解和应用。Servlet是Java Web开发的基础,它提供了一种标准的方法来扩展Web...
Tomcat Servlet阶段性总结思维导图
本示例将深入探讨如何使用Tomcat服务器、Servlet、Oracle数据库和JDBC(Java Database Connectivity)来实现一个简单的用户登录功能。下面,我们将详细讲解这个过程中的关键知识点。 1. **Tomcat服务器**: Tomcat...
"S06-tomcat之servlet内存马1" 在 Tomcat 中,Servlet 内存马是一种特殊的 Servlet,它可以动态注册 Tomcat 组件,实现内存马攻击。下面将对 Servlet 内存马的工作原理和实现机制进行详细的分析和解释。 Servlet ...
Tomcat 和 servlet的配置 和 简单入门案列
【Java学习笔记】这篇学习笔记主要涵盖了Java开发中的一些基础操作和配置,特别是使用Eclipse作为IDE,结合Tomcat服务器进行Servlet和JSP开发时的关键点。以下是对这些知识点的详细说明: 1. **Eclipse快捷键配置**...
3-6Tomcat处理源码实现与异步Servlet源码实现(1).mp4
【MyEclipse+Tomcat+Servlet开发】是一个关于使用MyEclipse集成开发环境与Tomcat应用服务器进行Servlet程序开发的教程。在当前的Web项目开发中,Java仍然是主流语言,因此掌握Java项目开发技能至关重要。虽然全面...
在开发Web应用时,我们经常会使用到Apache Tomcat服务器,它是Java Servlet和JavaServer Pages(JSP)的开源实现。本篇文章将详细讲解如何在Tomcat环境下配置JSP、Servlet和JavaBean,以便进行Web应用的开发和调试。...
这是Apache Tomcat Servlet /JSP容器的文档包的顶级入口点。Apache Tomcat 9版本实现了Java社区过程中的Servlet 4和JavaServer页面2.3规范,并包含了许多额外的特性,使其成为开发和部署Web应用程序和Web服务的有用...
【Tomcat下Servlet的配置】涉及的是在Apache Tomcat服务器上部署和运行Servlet的基本步骤,这对于初学者来说是一项重要的技能。Servlet是Java编程语言中用于扩展服务器功能的接口,常用于构建动态web应用。 首先,...
在研究Servlet在tomcat中的工作机制前必须先看看Servlet规范的一些重要的相关规定,规范提供了一个Servlet接口,接口中包含的重要方法是init、service、destroy等方法,Servlet在初始化时要调用init方法,在销毁时要...
servlet-api.jar
基于 MySQL+Tomcat+Servlet+JSP 的简单作业管理系统 基于 MySQL+Tomcat+Servlet+JSP 的简单作业管理系统 基于 MySQL+Tomcat+Servlet+JSP 的简单作业管理系统 基于 MySQL+Tomcat+Servlet+JSP 的简单作业管理系统 基于...
Apache Tomcat 是一款非常著名的开源 Servlet/JSP 容器。 Apache Tomcat 是一款非常著名的开源 Servlet/JSP 容器,被用做 Java Servlet 和 JavaServer Pages 技术的官方参考实现。如果您要了解这两种技术的细节可以...
java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包java运行tomcat需要的包...