Tomcat服务器
1 TOMCAT
1.1 服务器概述
1.1.1 什么是服务器?
服务器分为服务器软件和服务器硬件
服务器硬件: 通常是一台配置很高的计算机
服务器软件: 是指运行在互联网上的计算机程序, 可以对外提供服务
软件需要安装在硬件上才可以对外提供服务
服务器软件分为很多的种类: web服务器, 数据库服务器, ftp服务器, 邮件服务器等
1.1.2 什么是Web服务器?
是指运行在互联网上的计算机程序,专门用于接收客户端(通常是浏览器)的请求并处理,最终将处理的结果(通常是一个网页)响应给浏览器
tomcat就是一个web服务器(软件)
1.2 tomcat下载、安装、启动、配置
1.2.1 下载tomcat服务器
下载地址:http://tomcat.apache.org/
tomcat有很多版本,有解压版 和 安装版,还分windows (还分为32位和64位班)和Linux版,根据自己的需求,选择对应的版本下载。
tomcat服务器运行需要jdk的支持,版本对应为:
tomcat5 需要jdk4以上支持
tomcat6 需要jdk5以上支持
tomcat7 需要jdk6以上支持
tomcat8 需要jdk7以上支持
。。。
1.2.2 安装、启动tomcat服务器
1、安装tomcat服务器

使用绿色版, 解压之后就可以使用
安装的路径中最好不要有中文和空格!!
在安装之后以及启动之前还需要检查配置JAVA_HOME环境变量, 因为启动tomcat服务器需要这个环境变量
- 配置JAVA_HOME环境变量:
变量名: JAVA_HOME (注意中间是下划线)
变量值: JDK的根目录, 例如: C:\Program Files\Java\jdk1.8.0_161 (注意最后没有分号)

检查JAVA_HOME环境变量是否配置成功:

2、启动tomcat服务器
通过[tomcat安装根目录]/bin/startup.bat启动tomcat服务器
通过[tomcat安装根目录]/bin/shutdown.bat关闭tomcat服务器
如果访问时出现如下效果:

问题可能为:
(1)访问服务器时主机名后面的端口书写错误
(2)或者是服务器没开启
1.2.3 修改tomcat默认端口
在[tomcat安装根目录]/conf/server.xml文件中的69行的Connector标签上, 找到port属性, 将属性值改为80即可, 如下所示:

修改完后, 要重启服务器才会生效。
** FAQ端口占用问题:

如果在启动服务器时出现上面的异常信息, 则说明服务器监听的端口被占用了。问题造成的原因可能是:
(1)情况一: 可能是之前启动过tomcat, 后来关闭了, 但是实际上没有成功关闭!
解决方法: 通过shutdown.bat命令,将服务器按照关闭的流程再次关闭即可
如果再次启动服务器,启动成功则说明问题已经解决
否则看情况二
(2)情况二: 可能是别的程序在占用80端口, 导致服务器启动失败!
可以在cmd中通过"netstat -ano"命令查看当前系统活动的进程, 如下:

找到占用80端口的进程编号(pid), 再根据命令"taskkill /f /pid 进程编号"将进程结束即可!! 例如:

1.3 tomcat目录结构
1.3.1 tomcat目录结构介绍

bin – tomcat服务器批处理文件的存放目录
conf – tomcat服务器配置文件的存放目录(比如其中的server.xml文件是tomcat服务器的核心配置文件)
logs – tomcat服务器运行期间产生的日志文件的存放目录
temp – tomcat服务器临时文件的存放目录, 不用关注
work – tomcat服务器运行时工作文件的存放目录
webapps目录 – 是localhost虚拟主机默认管理的目录, 放在该目录下的web应用程序可以通过localhost主机进行访问。
1.4 虚拟主机和Web应用
1、虚拟主机:
在tomcat服务器默认提供了一台虚拟主机配置, 如下:
<Host name=“localhost” appBase=“webapps”
unpackWARs="true" autoDeploy="true">
在tomcat服务器中配置的一个站点就是一台虚拟主机。
在tomcat服务器中可以配置多个站点, 每一个站点都是一台虚拟主机。
2、Web应用:
简单说, web应用就是一个目录, 该目录中包含了很多的web资源文件(html/css/js/图片/jsp/servlet等), 根据一定的目录结构组织起来的就是一个Web应用。
web资源文件不能直接被虚拟主机所管理, 必须要把web资源放在web应用中, 再把web应用放在虚拟主机中才可以!!
1.5 web应用
1.5.1 web应用的目录结构
news应用(目录)
|
|-- 除WEB-INF以外的其他目录下: 放在这些目录下在资源文件是可以被浏览器直接访问的。
|-- WEB-INF目录, 是一个非常特殊的目录(受保护), 放在该目录下资源文件不能被浏览器直接访问
|-- classes目录: 用于存放java文件编译后的class文件
|-- lib目录: 用于存放当前web应用所需要的一些jar包
|-- web.xml文件: 当前web应用的核心配置文件
1.5.2 部署web应用到虚拟主机中
将web应用的目录拷贝到虚拟主机默认管理的目录下即可
例如将news目录拷贝到localhost虚拟主机默认管理的目录下, 即webapps目录, 就可以通过 localhost/news/hello.html来访问news下的hello.html页面了。
1.6 扩展内容(了解)
tomcat主页: http://localhost
hello.html: http://localhost/news/hello.html
1.6.1 配置缺省的(默认的)WEB应用
在没有将news配置为默认的Web应用之前, 访问news应用下的hello.html, 访问路径为:
http://localhost/news/hello.html
将news配置为默认的Web应用, 再次访问news应用下的hello.html, 访问路径为:
http://localhost/hello.html
将news配置为缺省/默认的Web应用的方式为: 将Web应用的目录名改为大写的ROOT
1.6.2 配置WEB应用的主页
在没有将hello.html配置为主页之前, 访问hello.html的路径为:
http://localhost/hello.html
将hello.html配置为主页之后, 访问hello.html的路径为:
http://localhost
将hello.html配置为主页的方法是:
在web应用/WEB-INF/web.xml文件中添加如下配置:
<welcome-file>hello.html</welcome-file>
1.6.3 打war包
jar包、war包、zip、rar都是一种压缩格式
将一个web应用中的所有资源文件打成一个war包的好处有:
(1)将所有文件打成一个压缩包便于传输, 而且体积也会更小
(2)将web打成war包传输到远程服务器上, 服务器能够识别war格式, 会自动解压发布。
怎么将web应用打成一个war包:
进入到web应用的根目录下, 选中所有文件, 将所有文件打成一个xxx.zip包, 再将xxx.zip后缀名改为war即可!!
HTTP协议
1 HTTP协议
1.1 HTTP协议概述
1.1.1 什么是HTTP协议?
Http: 是用于规定浏览器和服务器通信的方式/规则
Http协议中主要规定了两个内容:
(1)规定了浏览器如何给服务器发送请求信息(请求信息的格式)
(2)也规定了服务器如何给浏览器发送响应信息(响应信息的格式)
** Http工作时遵循的基本原则(了解):
(1)一次请求对应一次响应
(2)请求只能是浏览器发起, 服务器只能被动的等待请求作出回应。
1.2 HTTP协议详解
1.2.1 HTTP请求
1、请求行
GET /news/hello.html HTTP/1.1
GET: GET/POST 请求方式, 一共有7种, 但是5种不常用, 常用的只有GET和POST。
/news/hello.html: 请求的资源路径, 包括浏览器请求的是哪一个Web应用, 以及请求的是哪一个资源文件
HTTP/1.1: 请求所遵循的协议和版本
2、若干请求(报)头
Host: localhost – 表示浏览器所请求的主机
Accept-Language: zh-CN – 通知服务器浏览器能接收的语言环境
xxx: xxxx
…
3、请求实体内容
有时请求实体中没有内容
如果请求方式是GET提交, 请求实体一定没有内容, 是空的
如果请求方式是POST提交,并且请求中携带了数据给服务器, 请求实体才会有内容!!!
补充内容1:什么时候是GET提交,什么时候是POST提交
当使用表单(form)并且在表单上明确的通过method属性指定提交方式为POST时, 才是POST提交, 其他方式都是GET提交
POST提交百度一下 GET提交
直接在地址栏中输入URL地址回车访问 GET提交
GET提交(ajax除外!)
补充内容2:GET提交和POST提交有什么区别?
两者的区别主要体现在请求参数传输过程的不相同
(请求参数就是浏览器向服务器发送请求的过程携带的数据就叫做请求参数)
GET提交: GET提交通常是用于请求服务器中的资源
(1)会将请求参数拼接在URL后面提交给服务器, 会显示在地址栏上, 因此不安全!
(2)通过URL拼接参数, 数据量不能太大, 不能超过1kb或4kb
POST提交: POST提交通常是用于向服务器发送数据
(1)是通过请求实体发送数据给服务器, 不会显示在地址栏, 因此相对更安全.
(2)通过请求实体发送数据, 理论上数据量是没有限制的!
1.2.2 HTTP响应
1、状态行
HTTP/1.1 200 OK
HTTP/1.1: 响应信息所遵循的协议和版本
200: 三位的数字,状态码, 表示请求处理的结果。
200: 表示请求处理成功
404: 表示客户端请求的资源不存在! Not Found
500: 表示服务器端在处理请求的过程中出现了异常
Internal Server Error
OK: 描述短语, 也表示请求处理的结果!!
2、若干响应(报)头
Content-Type: text/html – 表示服务器响应的数据类型
text/html -- 表示服务器响应的是一个html格式的网页
image/* -- 表示服务器响应是一个图片
text/css
text/html;charset=utf-8 -- 表示服务器响应的是一个html格式的网页, 同时通知浏览器使用utf-8来接收服务器发送的数据
Refresh: 5;url=xxxx/index.html – 通知浏览器在多少秒之后跳转到指定的地址!
…
3、响应实体内容
浏览器所请求文件的内容
比如浏览器请求的是news/hello.html, 服务器会将hello.html文件的内容作为响应实体发送给浏览器。
1.3 扩展补充:配置Path环境变量的两种方式
Path=JDK的bin目录
方式一:
变量名: Path
变量值: C:\Program Files\Java\jdk1.8.0_161\bin;xxx;xxx...
方式二:
变量名: JAVA_HOME
变量值: C:\Program Files\Java\jdk1.8.0_161
变量名: Path
变量值: %JAVA_HOME%\bin;xxx;xxx...
本文详细介绍Tomcat服务器的基础知识,包括下载、安装、启动、配置流程,以及如何修改默认端口和部署Web应用。同时,文章深入讲解了虚拟主机、Web应用的目录结构,并提供了常见问题的解决方案。

1万+

被折叠的 条评论
为什么被折叠?



