一.下载、安装、启动、配置
- 下载地址:http://tomcat.apache.org
- 配置
环境变量:Path=D:\Java\jdk1.8.0\bin;
JAVA_HOME=D:\Java\jdk1.8.0 - 修改tomcat服务器默认端口(8080)
修改方式:找到[tomcat安装根目录]/conf/server.xml文件,将70行的port属性修改为80即可! - 端口占用问题
解决方式:1.运行shutdown.bat文件,将tomcat安照关闭的流程再关闭一次
2.在cmd中,通过“netstat -ano” 命令查看当前系统活动的进程,找到80端口并查看80端口对应的进程ID,再通过“taskkill /f /pid 进程ID” 结束占用80端口的进程
注1
:如果报netstat不是内部或外部命令,可以先进入 c:\windows\system32目录, 再运行
注2
:如果“taskkill…” 报拒绝访问,说明cmd窗口未获得管理权限,只需要通过管理员运行cmd,再执行
二.Tomcat服务器的目录结构介绍
- bin :tomcat服务器批处理文件的存放目录
- conf :tomcat配置文件的存放目录,其中server.xml文件是tomcat的核心配置文件
- lib :tomcat运行时所依赖的jar包的存放目录
- logs :tomcat运行时产生的日志文件的存放目录
- temp :tomcat运行时产生的临时文件的存放目录
- webapps :
- work :tomcat服务器运行时产生的工作文件的存放目录(JSP翻译后的Servlet文件、session的序列化文件)
三.Web应用
1.什么是Web应用
- 所谓的Web应用其实就是一个目录。
- 将为了实现某一个功能而准备的Web资源文件,(html/css/js…)根据所实现的功能,按照一定的目录结构组织起来的就是一个Web应用!
- Web资源不能直接被虚拟主机所管理,必须组织成Web应用才可以
2.如何组织Web应用的目录结构
news(文件夹)
|
| -- 除WEB-INF以外的目录下:html/css/js/jjsp..这些文件可以直接被浏览器访问
| -- WEB-INF (特殊的目录) 放在这个目录中的资源文件不能直接被浏览器访问
|
| -- classes 目录
| -- lib 目录
| -- web.xml 文件
3.如何部署Web应用到虚拟机主机中
- 只需要将Web应用的目录拷贝到虚拟主机管理的目录下就可以完成发布!
- 比如:现有localhost主机,默认管理的目录为webapps目录下,就可以通过localhost主机来访问news中的web资源了
http://localhost:8080/news/1.html
4.配置缺省的Web应用
- 将Web应用的名称改为大写的ROOT,当前Web应用就是一个缺省的Web应用
- 访问地址:
配置前:http://localhost:8080/news/1.html
配置后:http://localhost:8080/1.html
5.配置Web应用的主页
- web.xml基础内容
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
- 配置方式:在当前Web应用的 WEB-INF/web.xml 文件中的根标签内部,添加如下配置:
<welcome-file-list> <welcome-file>1.html</welcome-file> <welcome-file-list>
- 访问地址:
配置前:http://localhost:8080/1.html 配置后:http://localhost:8080
四.虚拟主机相关配置
1.什么是虚拟主机
- 所谓的虚拟主机其实就是tomcat服务器中配置的一个站点(比如百度/新浪),用户在访问时就感觉好像是访问一台独立的主机一样,因此我们称之为这两个站点,是运行在tomcat服务器模拟出来的两台虚拟主机。
- tomcat服务器中科院配置多个站点,每一个站点都是一台虚拟主机!
2.如何配置一台虚拟主机
- 在[tomcat安装目录]/conf/server.xml 文件中的Host标签的下面添加一个新的 Host 标签,配置如下:
<Host name="bai" appBase="baidu"></Host>
- name属性用于指定主机名称,将来通过浏览器来访问这个主机
- appBase用于指定虚拟主机默认管理的目录,将来可以将Web用于放在这个目录中,就可以部署Web应用到当前主机中了
- 配置完后还要到 hosts 文件中或者是 DNS 服务器中,添加域名和IP的映射关系:
127.0.0.1 bai
- hosts 文件的位置:
C:\Windows\System32\drivers\etc\hosts
- hosts 文件的位置:
3.如何配置缺省的(默认的)虚拟主机
- 现在 tomcat服务器中有两个主机:分别是 localhost和bai,对应的IP地址都是:127.0.0.1
如果通过主机名访问的话,就是访问对应的主机localhost:127.0.0.1 bai:127.0.0.1
- 但是通过127.0.0.1来访问,服务器也不知道浏览器访问的是哪一个虚拟主机,这时就会去访问默认的虚拟主机
- 默认的主机配置在 server.xml 文件的Engine标签上,如下:
<Engine name="Catalina" defaultHost="localhost">
- 可以修改 defaultHost属性值,来修改默认的虚拟主机
- 默认的主机配置在 server.xml 文件的Engine标签上,如下:
五.打war包
1.为什么要打war包
- war包其实就是一个压缩包,后缀名为war,压缩之后体积更小,便于传输和远处部署
- war包能够被服务器识别,发布到服务器的指定目录下,能够自动解压发布。
2.如何打war包
-
先进入到web应用的根目录,利用系统自带的压缩工具,将Web应用根目录下所有文件及文件夹打成一个xxx.zip包
-
将xxx.zip包的后缀名改为war既可
-
将xxx.war发布到虚拟主机默认管理的目录下(webapps)
注意的细节:
a、web应用下的文件和目录名称不能是中文的,否则不会自动解压发布
b、使用压缩工具打包时,先打成一个zip包,别的压缩格式可能会导致失败!
c、自己配置的虚拟主机不一定能识别war包,所以可能不会自动解压发布
HTTP协议
一、什么是HTTP协议
HTTP协议:规定了浏览器客户端和服务器之间通信的方式
规定了浏览器该如何给服务器发送请求信息
也规定了服务器该如何给浏览器做响应信息
二、三个基本原则
- 基于请求响应模型
- 一次请求对应一次响应
- 请求只能右客户端发出,服务器端只能被动的等待请求,做出回应
三、HTTP协议的详解
-
HTTP请求
- 请求行
GET /news/1.html HTTP/1.1
GET: 表示提交方式,HTTP协议中一共有7中提交方式,只用GET和POST
/news/1.html: 指定请求资源的路径
HTTP/1.1: 协议和版本 - 若干请求头
host : localhost – 告诉服务器浏览器访问的是哪一台虚拟主机
cookie : 和cookie技术相关的头
Referer : 和防盗链相关的头,记录当前请求来自哪一个页面的超链接
(空白行)
- 请求实体内容
如果请求方式为POST
提交并且请求中携带了数据,实体才会有内容
如果请求方式为GET
提交,请求实体内容是空的
- 请求行
- GET提交和POST提交的区别
主要是体现在请求参数传输过程的不同- GET提交时通过地址栏url后面拼接参数将数据提交给服务器,相对不安全
- GET提交通过地址栏提交参数给服务器,数据量不能太大(不超过1KB或者4KB)
- POST提交是通过请求实体内容将数据提交给服务器,不会显示在地址栏,相对更安全
- POST提交的数据量理论上没有限制。
-
HTTP响应
- 状态行
HTTP/1.1 200 OKHTTP/1.1 : 协议和版本 200 : 状态码,三位的整数,表示服务器对请求处理的结果 200:表示请求处理成功 302:和重定向相关的头 404:客户端请求的资源不存在 500:服务端在处理请求的过程出现了错误 OK : 描述短语
- 若干响应头
Content-Type: text/html;image/png -- 响应的数据类型 Content-Length: 80 --响应的数据长度 Set-Cookie: 后面介绍 Refresh: 和定时刷新相关的头,比如:注册成功提示3秒之后跳转到首页就是一个定时刷新操作
(空白行)
- 响应实体内容
就是所请求资源文件的内容
- 状态行