Tomcat与servlet

web服务器

Web服务器是可以向发出请求的浏览器提供文档的程序。
1、服务器是一种被动程序:只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应

2 、最常用的Web服务器是Apache和Microsoft的Internet信息服务器(Internet Information Services,IIS)。
3、Internet上的服务器也称为Web服务器,是一台在Internet上具有独立IP地址的计算机,可以向Internet上的客户机提供WWW、Email和FTP等各种Internet服务。
4、Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流,这就是人们常把它们称为HTTP服务器的原因。
Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。

Tomcat

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Tomcat属于Servlet容器
用途:
Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。
在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。
Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。

我家有一台机器,可以把石头变成金子。你快递给我一箱子石头,让我把它们变成一箱子金子再快递给你。
这个机器就是web项目。石头是请求,金子是响应,我家就是服务器。如果你把一箱石头邮到我家,机器可不会自己接受快递然后把石头进行加工成金子再快递给你,这个时候帅气的我就登场了,我接受快递,把石头给机器变成金子后再打包快递给你。我就是那个tomcat。
没有我,你的一箱子石头邮过来也没用。我家机器不会搭理你。更不会给你金子。

web.xml

用来初始化配置信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。

Servlet

Servlet(小服务程序)是一个与协议无关的、跨平台的Web组件,它基于Java技术开
发,由Servlet容器所管理。和运行在客户端浏览器中的Applet(小应用程序)相似,Servlet
运行在服务器端,可以动态地扩展服务器的功能,并采用“请求一响应”模式提供Web服
务。 Servlet的主要功能是交互式地浏览和修改数据,生成动态Web内容。
Servlet是平台独立的Java类,即按照Servlet规范编写的Java类,所以具有Java语言
的所有优点,如良好的可移植性及安全性等。 Servlet被编译为平台中立的字节码,可以被
动态地加载到支持Java技术的Web服务器中运行,就如同Applet对客户端一样,区别在于
Servlet运行并不需要图形用户界面

Tomcat与servlet之间的关系

当初在Apache开发时还未出现Servlet的概念,所以Apache不能内置支持Servleto实
际上,除了Apache,其他许多Web服务器软件都不能直接支持Servleto为了支持Servlet,
通常要单独开发程序,这种程序一般称为服务器小程序容器(Servlet Container),有时也
叫做服务器小程序引擎(Servlet Engine)o它是Web服务器或应用程序服务器的一部分,
用于在发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME
的响应,它在Servlet的生命周期内包容和管理Servlet,是一个实时运行的外壳程序。运行
时由Web服务器软件处理一般请求,并把Servlet调用传递给“容器”来处理o Tomcat就
是满足这种需要的JSP/Servlet引擎,是Sun公司的JSP/Servlet的官方实现。
在这里插入图片描述

Context 容器

Tomcat 的容器等级中,Context 容器是直接管理 Servlet 在容器中的包装类 Wrapper,所以 Context
容器如何运行将直接影响 Servlet 的工作方式。

当 Context 容器初始化状态设为 init 时,添加在 Context 容器的 Listener 将会被调用。【ContextConfig监听器】将会负责整个 Web 应用配置文件的解析工作。
最后将这个 Context 容器加到父容器 Host 中。

【ContextConfig监听器】的解析工作有哪些?

ContextConfig 的 init 方法将会主要完成以下工作:
1.创建用于解析 xml 配置文件的 contextDigester 对象
1.读取默认 context.xml 配置文件,如果存在解析它
1.读取默认 Host 配置文件,如果存在解析它
1.读取默认 Context 自身的配置文件,如果存在解析它
1.设置 Context 的 DocBase
ContextConfig 的 init 方法完成后,Context 容器的会执行 startInternal 方法,这个方法启动逻辑比较复杂,主要包括如下几个部分:
1.创建读取资源文件的对象
1.创建 ClassLoader 对象
1.设置应用的工作目录
1.启动相关的辅助类如:logger、realm、resources 等
1.修改启动状态,通知感兴趣的观察者(Web 应用的配置)
1.子容器的初始化
1.获取 ServletContext 并设置必要的参数
1.初始化“load on startup”的 Servlet

Web 应用的初始化工作?

应用的初始化主要是要解析 web.xml 文件,这个文件描述了一个 Web 应用的关键信息,也是一个 Web 应用的入口。
【web.xml 文件】中的各个配置项将会被解析成相应的属性保存在 【WebXml 对象】中。
接下去将会将 WebXml 对象中的属性设置到 Context 容器中,这里包括创建 Servlet 对象、filter、listener 等等,这些代码在 WebXml 的 configureContext 方法中。

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值