Tomcat就是这么简单
时间:2022-05-04
本文章向大家介绍Tomcat就是这么简单,主要内容包括什么是Tomcat、为什么我们需要用到Tomcat、配置Tomcat、相关术语介绍、tomcat结构目录、webapps目录的详细说明、配置虚拟目录、配置虚拟目录方法一:、配置虚拟目录方法二:、配置临时域名、设置虚拟主机、为什么需要用到虚拟主机?、配置虚拟主机的步骤、Tomcat体系结构、浏览器访问WEB资源的流程图、练习、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
什么是Tomcat
Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。
为什么我们需要用到Tomcat
如果你学过html,css,你会知道你写的页面只能自己访问,别人不能远程访问你写的页面,Tomcat就是提供能够让别人访问自己写的页面的一个程序
配置Tomcat
运行Tomcat需要JDK的支持【Tomcat会通过JAVA_HOME找到所需要的JDK】。
- 新建JAVA_HOME环境变量【路径是JDK的主目录】
- 进入Tomcat目录下的bin中启动startup.bat,以下是成功启动Tomcat的页面。
- 在浏览器地址栏输入http://localhost:8080,如果能够出现Tomcat页面,说明配置成功了!
注意:如果在使用Tomcat时出现了Error deploying web application directory web222
,很大原因就是jdk和tomcat的版本不匹配。目前,jdk8不能匹配tomcat7.0,所以要降低jdk版本【换成JDK7】
当然也有可能不是一帆风顺能够直接启动Tomcat,不能正常启动Tomcat会有以下情况
- JAVA_HOME配置错误
- 端口被占用了
- 第一种方法:在cmd输入netstat -anb查看谁占用了该端口【Tomcat默认的是8080】,在进程中关闭它
- 第二种方法:主动改变tomcat的端口,到tomcat主目录下的conf/server.xml文件中修改,把8080端口改成是8088或者是其他的‘
相关术语介绍
tomcat结构目录
目录的简单介绍
- bin:启动和关闭tomcat的bat文件
- conf:配置文件
-
server.xml
该文件用于配置server相关的信息,比如tomcat启动的端口号,配置主机(Host) -
web.xml
文件配置与web应用(web应用相当于一个web站点) -
tomcat-user.xml
配置用户名密码和相关权限.
-
- lib:该目录放置运行tomcat运行需要的jar包
- logs:存放日志,当我们需要查看日志的时候,可以查询信息
- webapps:放置我们的web应用
- work工作目录:该目录用于存放jsp被访问后生成对应的server文件和.class文件
webapps目录的详细说明
在webapps中建立了web1目录,下面放置我们的html文件,jsp文件,图片等等,则web1就被当做web应用管理起来【tomcat6.0以后的版本才支持】
例子:在webapps下创建一个web站点,在web站点下创建一个html文件,访问html文件
web站点的目录是有规范的
为什么要这样设置web站点目录呢?
- 需求:我有多个html文件,想把其中的一个html文件作为我web站点的首页。
- 如果没有WEB-INF目录下的web.xml文件支持,是无法解决我的需求的
- 这个规范是约定熟成的。
下面将web站点下的helloword2.xml文件作为站点的首页
- 新建一个WEB-INF目录
- 在WEB-INF目录下创建一个web.xml
- web.xml我们不可能会写,所以可以在webapps目录下其他的站点中抄一份过来【复制ROOT/WEB-INF/web.xml的文件到自己的站点中】
- 在web.xml中添加以下代码
<welcome-file-list>
<welcome-file>helloword2.html</welcome-file>
</welcome-file-list>
- 访问web站点【helloword2.html已经是web站点的首页了,所以不需要指定资源访问了】
配置虚拟目录
为什么需要配置虚拟目录?
- 如果把所有web站点的目录都放在webapps下,可能导致磁盘空间不够用,也不利于对web站点目录的管理【如果存在非常多的web站点目录】
- 把web站点的目录分散到其他磁盘管理就需要配置虚拟目录【默认情况下,只有webapps下的目录才能被Tomcat自动管理成一个web站点】
- 把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录的映射
配置虚拟目录方法一:
- 在其他盘符下创建一个web站点目录,并创建WEB-INF目录和一个html文件。
- 找到Tomcat目录下/conf/server.xml文件
- 在server.xml中的 节点下添加如下代码。path表示的是访问时输入的web项目名,docBase表示的是站点目录的绝对路径
<Context path="/web1" docBase="D:web1"/>
- 访问配置好的web站点
配置虚拟目录方法二:
- 进入到confCatalinalocalhost文件下,创建一个xml文件,该文件的名字就是站点的名字。
- xml文件的代码如下,docBase是你web站点的绝对路径
<?xml version="1.0" encoding="UTF-8"?>
<Context
docBase="D:web1"
reloadable="true">
</Context>
- 访问web站点下的html资源
配置临时域名
访问Tomcat服务器有好几种方式
- 使用localhost域名访问【localhost代表本机】
- 使用ip地址127.0.0.1访问【该ip地址也是本机】
- 使用机器名称访问【只限用于本机上或者局域网】
- 使用本机IP地址访问【在cmd中输入ipconfig可以查询到本机IP地址】
- 还可以为机器配置临时域名
配置临时域名步骤
- 打开到C:WindowsSystem32driversetc下,找到hosts文件
- 在hosts文件下配置临时域名
设置虚拟主机
什么是虚拟主机?
多个不同域名的网站共存于一个Tomcat中
为什么需要用到虚拟主机?
例子:我现在开发了4个网站,有4个域名。如果我不配置虚拟主机,一个Tomcat服务器运行一个网站,我就需要4台电脑才能把4个网站运行起来。
配置虚拟主机的步骤
- 在tomcat的server.xml文件中添加主机名
<Host name="zhongfucheng" appBase="D:web1">
<Context path="/web1" docBase="D:web1"/>
</Host>
- 访问虚拟主机下的web站点
Tomcat体系结构
浏览器访问WEB资源的流程图
练习
在浏览器输入http//:zhongfucheng直接显示到页面
分析:
- 需要配置虚拟主机
- 把8080端口改成80
- 设置web站点首页
- 映射虚拟目录为/
如果文章有错的地方欢迎指正,大家互相交流。
- 黑客控制你的车!不信?其实很简单
- strspn 和strcspn
- 小程序“圣诞帽”的实现思路
- FluorineFx:远程共享对象(Remote SharedObjects)
- Centos下安装破解Jira7的操作记录
- PN结加正向偏置电压 其空间电荷区为何变窄
- Thrift入门实践
- Centos7下部署两套python版本并存环境的操作记录
- MapX中取得图元操作的速度测试
- FluorineFx:基于RSO(远程共享对象)的文本聊天室
- 扫盲文章:AMF,RTMP,RTMPT,RTMPS
- "操作必须使用一个可更新的查询"问题
- 利用fluorineFx将DataTable从.Net传递到Flash
- Linux服务器性能压力测试
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 专为程序员定制的垃圾清理工具(Node Cli实现)
- CodePen vue SFC 、flutter 在线玩耍来袭
- [重拾CSS]一道面试题来看伪元素、包含块和高度坍塌
- webpack 拍了拍你,给了你一份图解指南(模块化部分)
- 深入探究Immutable.js的实现机制(一)
- 深入探究immutable.js的实现机制(二)
- ES6 Promise 的最佳实践
- 「 Map最佳实践」什么时候适合使用 Map 而不是 Object
- ES2017 异步函数的最佳实践(`async` /`await`)
- React Hooks中这样写HTTP请求可以避免内存泄漏
- 用了这 7 个 VS Code 插件,想写一辈子代码
- 听说你还不知道Promise的allSettled()和all()的区别?
- React 条件渲染最佳实践(7 种方法)
- 一文带你层层解锁「文件下载」的奥秘
- Android实现简单C/S聊天室应用