(本人小白,有些地方也是参考查询理解而来,如有错误,欢迎各位大神指正)

1.什么是web应用服务器?应用服务器其实也是一个应用程序。tomcat服务器也是web应用服务器之一。

2.tomcat服务器其实也是一个应用程序(软件),而服务器主机的意思:一台电脑上如果运行了tomcat服务器,我们就概称这台主机为服务器。
3.凡是实现了应用层协议的软件,都可以称作web服务器。web服务器是安装在服务端主机上实现了http协议的软件,也叫http服务器,如微软的IIS,当前排名第一开源免费的Apache(个人认为,凡是实现了应用层协议的软件都可以叫web服务器,如ftp服务器,smtp服务器,只不过我目前只关心http服务)。而目前我们只关心http服务,而一个web服务器必备的功能就是对某个端口进行循环监听,被动的接收客户端发送到该端口的http请求并响应。根据上述原理,我们自己也可以去编写web服务器。由于客户端是浏览器,我们就要根据http协议去自己解析和封装要交互的数据。
4.tomcat服务器本身也是由java语言开发的。
5.tomcat目录结构
bin  脚本目录  用于存放启动和配置tomcat的可执行文件
conf  (config) 配置目录  存放tomcat服务器的全局的配置文件(下面为两个重要文件)
           cong中有一个核心配置文件 server.xml
            所有的web项目的默认配置文件web.xml
lib  (library) 依赖的jar库。存放tomcat服务器运行以及部署在tomcat上面的web项目运行所需要的jar包  该目录被所有web项目共享
logs  日志目录 存放tomcat服务器运行产生的一些日志文件
temp 临时文件 可以随意删除
webapps  web应用发布目录  存储部署在tomcat的所有web项目
work  tomcat处理jsp文件的工作目录
6.一个web应用的目录结构以及web应用是如何部署到tomcat服务器的?
web项目发布到tomcat中的过程:
(1).首先tomcat先在web apps下面建立一个与web应用工程名同名的文件夹
(2).然后将web content下的所有文件原封不动的拷贝到web应用的文件夹下(web content是eclipse中创建的动态web项目内一个文件夹)
注意:web-INF目录是受保护的,外界不能直接访问
7.项目发布后,浏览器端访问是怎样一个过程?
 客户端直接访问的是servlet文件。如下图:
url-pattern的配置有三种,即完全匹配,目录匹配,扩展名匹配。如果什么都没写,只写了一个“/”,为缺省路径匹配。即所有服务器找不到的都来找缺省路径。web应用中所有资源的响应都是由servlet配置负责的,也包括所有的静态资源。不管是访问什么,都是先去web项目下的web.xml文件中通过servlet配置查找该资源。
如果客户端访问的是html 等静态页面。访问过程:
由上所述。如果访问1.html这个静态资源,tomcat首先会拿着这个1.html去指定的web项目下的web.xml中找一个<url-pattren>为1.html的配置。如果找不到,就去找缺省的。如果web.xml中也没有配置缺省的路径。就会去tomcat服务器中的全局web.xml中去寻找。最终找到全局web.xml中的缺省路径。然后这个缺省的servlet会去找一个1.html的静态源,然后读取1.html的内容,逐行输出到浏览器。所以我们就看到了1.html的页面。如果连1.html的静态资源也没有,就会报404错误。那么这个404错误的这个页面,当然也是全局web.xml中的缺省servlet帮你输出的。
tomcat服务器的全局web.xml配置文件中根据<>url-pattern>找到<servlet>名称为default.再根据default找到缺省servlet的配置如下:
当前项目的web.xml没有配置客户端访问的路径,如何处理?(缺省路径问题)
   (见上)
8.浏览器访问tomcat中的项目整个过程中,tomcat都做了一些什么事情?
       1.客户端先根据访问地址找到tomcat服务器,找到服务器后,也就是把http请求发给了tomcat
        2.然后tomcat服务器根据http请求,解析请求内容,获得客户端要请求的资源的地址。并找到该资源
        3.创建servlet的实例对象。
        4.第一次访问,tomcat服务器会调用该servlet的init方法。每次访问,服务器都会调用service方法。而service方法需要两个参数,requst和response。所以tomcat服务器会创建requst和response对象用于调用service方法传递参数.

关于servlet的入门介绍,servlet的声明周期参考:

1.servlet是什么?其实servlet是一个接口。是sun公司提供的一套规范(接口)。用来处理客户端请求、响应给浏览器的动态资源。而我们通常提到的servlet,就是指实现了servlet接口的类。所以对于实现了servlet接口的类,我们都概称为servlet。所以servlet的实质就是一套java代码,通过java的API  动态的向客户端输出内容。这个写好的servlet最后要放到一个web应用服务器中运行,以供外界访问。

2.servlet的实现有三种方式。实现接口或继承类

3.servlet的生命周期:

web应用成功发布到tomcat中后。当外界第一次访问该servlet的时候。创建servlet对象,并调用servlet类的init方法进行初始化。每一次访问servlet类的时候,tomcat引擎都会调用servlet类的service方法。服务器关闭的时候,调用distory方法,servlet对象被销毁。(而对于servlet对象的创建,默认是第一次访问的时候创建,其实也可以在服务器一启动的时候就创建。这时需要在自己的web项目,web.xml文件中 <servlet>下面配置一个 <load-on-startup> )

4.域对象的介绍:

域对象之一 servletcontext: servletcontext是整个web应用的一个域对象。它里面存的东西,整个web项目中任意地方都可以去访问到。在服务器启动或该web应用一发布tomcat服务器的时候就被创建。在web应用被移除或服务器关闭时消失。一个域对象必备的三个方法:

setAtrribute(String name,Object obj);

getAttribute(String name);

removeAttribute(String name);

域对象就是用来存储数据的。以供内部存取访问

Tomcat是什么。Tomcat入门介绍相关推荐

  1. Tomcat容器入门介绍

    Tomcat容器入门介绍 Tomcat环境配置 PS:JDK的安装这里就不讲了,找到安装包直接下一步下一步就行了. 1.配置JDK 在Windows10下,找到环境变量 在环境变量中添加JDK主目录 ...

  2. Tomcat 教程之快速入门

    Tomcat 教程之快速入门 版本说明 本文使用 Tomcat 版本为 Tomcat 8.5.24. Tomcat 8.5 要求 JDK 版本为 1.7 以上. 简介 Tomcat 是什么 Tomca ...

  3. Tomcat快速入门(Tomcat安装 把一个项目发布到tomcat中 Eclipse配置Tomcat idea配置tomcat)

    文章目录 服务器的概念 服务器 Web服务器软件:接收客户端发送的请求和响应客户端请求. 常见的Web服务器软件 Tomcat安装 win下启动乱码问题解决 Tomcat目录介绍 如何把一个项目发布到 ...

  4. 【JavaEE WEB 开发】Tomcat 详解 Servlet 入门

    转载请注明出处 :  http://blog.csdn.net/shulianghan/article/details/47146817 一. Tomcat 下载安装配置 1. Tomcat 下载 T ...

  5. Tomcat集群快速入门2

    首先讲一下mac和linux下,tomcat单击部署多应用,就是一台服务器部署多个应用,首先修改etc/profile,也就是说,我们这个系统的环境变量,我们增加6个环境变量,我们先看前三个,右边的t ...

  6. Eclipse+tomcat开发j2ee经典入门例子

    安装配置tomcat 1.     去tomcat官网下载安装包安装 2.     变量名:CATALINA_HOME 变量值:tomcat安装路径 3.     在浏览器收http://localh ...

  7. Tomcat(二):tomcat配置文件server.xml详解和部署简介

    1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务,因为是入门示例,所以设置极其简单,只需修改$CATALINA_HOME/conf/server.xml文件为如下内容即可 ...

  8. SpringBoot 2.0 系列001 -- 入门介绍以及相关概念

    为什么80%的码农都做不了架构师?>>>    SpringBoot 2.0 系列001 -- 入门介绍以及相关概念 什么是SpringBoot? 项目地址:http://proje ...

  9. Hadoop入门介绍

    Hadoop入门介绍 Hadoop背景介绍 发展钱途 什么是Hadoop Hadoop产生背景 Hadoop生态圈 国内应用 用户画像 HADOOP用于网站点击流日志数据挖掘 大屏展示 离线数据分析 ...

最新文章

  1. Linux加密和安全
  2. mysql中文时好时坏_mysql索引的问题,时好时坏
  3. c python通信protobuf_python 处理protobuf协议
  4. css 汉字注音,日本语片假名
  5. 第一百二十六节,JavaScript,XPath操作xml节点
  6. 锐浪报表数据源access_kylin+SuperSet实现实时大数据报表的快速开发
  7. Java基础篇:构造函数重载
  8. 系统学习深度学习(十八)--NIN模型
  9. IT人看《国富论》系列:第一篇之第二章:论分工的原由。分工其实是人类利己倾向的结果...
  10. 用c语言编写图形的变换程序,利用C语言实现二维图形的变换
  11. iphone静音键失灵_静音键——大部分安卓手机都不爱用的神设计
  12. vb计算机安装教程,windows10系统安装vb6.0图文教程 Win10攻略
  13. DNS 智能解析功能评测之国内部分总结篇~
  14. uniapp一套代码开发app和微信小程序
  15. audiosever耗电_audio服务自动停止 - 卡饭网
  16. 用计算机管理员同步一下文件,《计算机应用基础(Windows 7 Office 2010)同步训练》0711.docx...
  17. 本地Windows MIMIC III数据入库
  18. 组装计算机教材杨凤霞教案,高一集合教案
  19. 2019上半年软件设计师考题整理
  20. python简单温度转换,python实现简单温度转换的方法

热门文章

  1. 《从案例中学习JavaScript》之实现对话效果
  2. 读《借助开源项目,学习软件开发》总结
  3. opencv-python学习【4】色彩空间类型转换
  4. Unity开发日记【第七天】——怪物的移动和动画及类的实现
  5. 可视化分析中国500强排行榜数据后,我发现了...
  6. 2022-6-13 咒语和药水的成功对数,替换字符后匹配,统计得分小于 K 的子数组数目,......
  7. 一到面试就紧张,该怎么办?
  8. JAVA 把base64图片数据转为本地图片
  9. abp框架学习笔记(三)--Angular和前端
  10. 常州大学新生赛 F-大佬的生日礼包