Tomcat
web相关概念回顾
- 软件架构
- C/S: 客户端/服务器端.
- B/S: 浏览器/服务器端(javaee重点,下面都是针对B/S模式的),通过
url域名
访问,浏览器不用向客户端那样维护.- 浏览器发出
请求
给服务器接收处理. - 服务器端对浏览器的请求做出
响应
.
- 浏览器发出
- 资源分类(对于服务器来说)
- 静态资源: 如html,css,js等,所有用户访问得到的结果都是一样的.
- 浏览器请求访问静态资源时,静态资源直接交给浏览器,而浏览器中有针对静态资源的解析引擎,所以
浏览器可以直接解析静态资源展示效果
.
- 浏览器请求访问静态资源时,静态资源直接交给浏览器,而浏览器中有针对静态资源的解析引擎,所以
- 动态资源: 每一个用户访问相同资源后得到的结果可能不一样.比如:servlet,jsp,php等.
- 浏览器请求访问动态资源时,动态资源首先要转换为静态资源再返回给浏览器解析从而展示效果.
- 网络通信三要素
- IP: 找到服务器电脑,这是电子设备(这里就是计算机)在网络中的唯一标示.
- 端口: 应用程序在计算机中的唯一标示,
0~65536
,自己写代码的时候一般我们都写10000
以上. - 传输协议: 数据传输规则.
- TCP: 安全协议,三次握手保证安全连接,速度稍慢.
- UDP: 不安全的协议,不建立连接,速度快.
- 静态资源: 如html,css,js等,所有用户访问得到的结果都是一样的.
web服务器软件: Tomcat
-
什么是服务器呢?
- 服务器就是指安装了服务器软件的计算机,例如装了
MySql
我的电脑就可以被叫做MySql服务器
. - 服务器软件的作用: 接收用户请求,处理请求,做出响应.
- web服务器软件: 接收用户请求,处理请求,做出响应.
- 在web服务器软件中,我们可以部署web项目,让用户通过浏览器来访问这些项目.
- 也可以被称为web容器.
- 服务器就是指安装了服务器软件的计算机,例如装了
-
常见的java相关的web服务器软件
- WebLogic: oracle公司的, 大型的javaee服务器,支持所有的Javaee规范,收费的.
- 什么是javaee呢?
- javaee是指java在企业级开发中使用的技术规范的综合,一共规定了13项大的规范.
- WebSphere: IBM公司的,大型的javaee服务器,支持所有的Javaee规范,收费的.
- JBOSS: JBOSS公司的,大型的javaee服务器,支持所有的Javaee规范,收费的.
- Tomcat: Apache(阿帕奇)基金组织的,中小型的javaee服务器,仅仅支持少量的javaee规范,开源的.
-
Tomcat: web服务器软件
- 下载: tomcat下载地址 ,去下载自己电脑对应的版本就可以了.
- 安装: 解压压缩包就算安装好了哈哈.
- 安装目录最好不要带中文和空格.
- 卸载: 删除tomcat的安装目录就可以了.
- 启动: win: bin目录–>start.bat,linux: bin目录–>start.sh.
- 注意:
- 当你点击启动后窗口一闪而过,就是你没有配置环境变量,要配置四个环境变量,反正我是这样子了才可以的.
- 新建环境变量
CATALINA_BASE
并配置为: E:\Java\apache-tomcat-6.0.29. - 新建环境变量
CATALINA_HOME
并配置为: E:\Java\apache-tomcat-6.0.29. - 新建环境变量
TOMCAT_HOME
并配置为: E:\Java\apache-tomcat-6.0.29. - 在环境变量Path中,新增加“%TALINA_HOME%\bin\ ".
- 新建环境变量
- tomcat启动报错,就是启动成功后再一次启动黑窗口一闪而过的样子,通过查看日志文件可以知道,原因是因为端口号被占用了.
- 解决方案1: 停止占用该端口号的应用程序进程.可以在dos窗口下输入
netstat -ano
通过找到本地地址后四位为8080
的进程,记住其PID
,然后在进程中停掉它就可以了. - 解决方案2: 修改自身的端口号,在config目录下找到配置文件
server.xml
中修改port
就可以了. - 一般我们修改tomcat的端口号为80,因为80是http协议的默认端口号,这样我们访问就不需要输入端口号了.
- 解决方案1: 停止占用该端口号的应用程序进程.可以在dos窗口下输入
- 当你点击启动后窗口一闪而过,就是你没有配置环境变量,要配置四个环境变量,反正我是这样子了才可以的.
- 完成这四步以后,再点击start.bat就可以成功启动tomcat了,有可能有乱码问题,这个无关紧要.
- 然后打开浏览器,输入
http://localhost:8080
,就可以访问到tomcat的官网去了哈哈,当然要通过别人电脑访问的话,localhost
就要换成你电脑的ip地址了.
- 注意:
- 关闭:
- 正常关闭: 理解为电脑关机.
- 双击
bin
目录下的shutdown.bat
. - 在启动的黑窗口按下
ctrl+c
.
- 双击
- 强制关闭: 把黑窗口关掉,可以理解为电脑突然断电了哈哈哈.
- 正常关闭: 理解为电脑关机.
- 配置:
-
部署项目的方式:
-
直接将项目放到
webapps
目录下即可,就可以通过例如:http://localhost:8080/hello/hello.html
访问了- 其中
hello
表示一个名为hello
的文件夹. /hello
:表示项目访问路径,也就是虚拟目录,一般名称与目录名相同,访问的时候,就是通过虚拟目录名称找到文件所在文件夹的./hello.html
: 表示文件名称.- 简化部署: 将项目打包成一个
.war
压缩包,再将.war
包放到webapps
下面,他就会自动解压缩,删除的时候也只需要删除.war
包就可以了,解压的文件他会自动删除.
- 其中
-
配置
config
目录下的server.xml
文件中的<Host>
标签体,在其中添加一些语句:<Context docBase = "文件路径(文件所在文件夹的路径)" path = "/虚拟目录名称,一般写成和文件名称相同" />
. -
(推荐)在
apache-tomcat-9.0.19\conf\Catalina\localhost
目录下新建一个任意名称的xml文件,然后在文件中添加一句<Context docBase = "文件路径(文件所在文件夹的路径)"/>
.- 注意: 此时的虚拟目录就是xml文件的名称,这是一种热部署方式,当我们不想运行这个文件了,但是又不想停掉服务器,我们就可以给这个xml文件加上后缀
_bak
,我们就访问不了了.
- 注意: 此时的虚拟目录就是xml文件的名称,这是一种热部署方式,当我们不想运行这个文件了,但是又不想停掉服务器,我们就可以给这个xml文件加上后缀
-
-
静态项目和动态项目
- 静态项目: 只能放静态资源
- 动态项目: 可以放静态资源和动态资源
- 目录结构(以java动态项目的目录结构为例):
- —项目的根目录(例如tomcat中webapps下面的root目录)
- —WEB-INF目录(只有动态项目才有这个目录)
- —web.xml: web项目的核心配置文件
- —classes目录: 放置字节码文件的目录
- —lib目录: 放置依赖的jar包.
- —WEB-INF目录(只有动态项目才有这个目录)
- —项目的根目录(例如tomcat中webapps下面的root目录)
-
-
tomcat解压后各个目录分别是干啥的呢?
- bin目录: 可执行文件.
- conf目录: 配置文件.
- lib目录: 依赖的jar包.
- logs目录: 日志文件.
- temp目录: 临时文件.
- webapps目录: 存放web项目的.
- work目录: 存放运行时的数据.
-
将tomcat集成到idea中,并且创建javaee项目,部署项目.
- emm,这个东西不大好写,百度也有好多,我就我就不写了哈.
- 然后有个技巧就是,热部署,就是你修改了html文件这些会自动跟新,在
On update action
里面,这些百度也有,我就是提醒一下那个就叫热部署罢了,然后一般选第一个选项update resources
就可以了,不要选第二个,因为java代码带动可能会很多,改一下重新部署一次有点浪费资源,这个就手动重新部署吧哈哈,不过电脑比较好选也没事. - 还有一个要注意的点就是:我们eclipse直接输入
localhost:8080
就可以访问index.jsp页面
,但是idea默认情况下localhost:8080/......
,这个斜杠后面就是我们上面说的虚拟目录,怎么让他消失呢?你点tomcat会有一个下拉栏,点击编辑结构,然后把Deployment
下面的Applicationic context
改为/
就可以了. - 今天有点懒,就懒得贴图了,不懂就给我发消息吧,我帮你搞也行.