Tomcat 服务器软件的使用 (配置文件,  部署项目 );

基本的 web 知识回顾:

1. web 服务器 软件:  Tomcat  (常见的, 主流的, 开源的, 免费的,软件)
 
1. 软件 架构
1. C/S : 客户端 / 服务器端
2. B/S :  浏览器 / 服务端 (通过 服务器的 域名 就可以 访问到 不同的 服务器的 程序) (JAVAEE)
* 客户端 就是 浏览器, 也就是说 客户端 0 维护,  开发起来 更快速一些.
* 我们 以后 是 基于 B/S 架构 来开发 后期 的 软件的.
 
 
2. 资源分类
1. 静态资源:  所有用户 访问后, 得到的 结果 都是 一样的, 称为 静态 资源, 静态 资源可以 直接被 浏览器解析.
* 如: html, css, JavaScript
2. 动态资源: 每个 用户 访问 相同资源后 得到的 结果 可能不一样. 称为 动态 资源. 动态 资源 被 访问后 需要先 转换为 静态资源, 然后 在 返回给 浏览器.
* 如: servlet / jsp , php, asp...(一些 动态的 网页 开发技术.)
 
3. 网络通信三要素
1. IP :    电子 设备(计算机) 在 网络中的 唯一标识. (可以 通过 IP 地址 去找到 这个 电子设备)
 
2. 端口 :     应用程序 在 计算机中的 唯一标识.   0 ~ 65536 ,  (一般 我们 自己的 应用程序 取得 端口 不要 在 1024 之内, 因为 这些 端口 很有可能 被 操作系统 占用了.)
 
3. 传输 协议:    规定了 数据传输 的规则.  (例如: 聊天, 规定了我们 都要说 中文 才能听得懂, 说英文 就听不懂. )  (客户端 和 服务端 要遵循 相同的 传输协议,  才能 进行 数据的 传输, 不然 , 很有可能 客户端 发的数据 , 服务端 解析不了,  那也就 返回不了 相应的  数据.)
 
1. 基础协议:
1. tcp:  安全协议, 三次握手(确认 双方 都在线). 速度稍慢
2. udp:  不安全 的(广播) 协议(有可能 会丢失 数据).  速度快.
 
*** 通过 IP 找到了 计算机, 通过 端口 找到了 应用程序,  遵循相同的 协议  传输 和 返回 数据资源.
 
 
#web 服务器软件:
*  服务器:    就是 安装了 服务器软件的 计算机.  (例如 : Mysql 服务器 软件:  通过 用户名和 密码 让别人 登陆(请求), 我的 mysql 数据库. )
* 服务器 软件:   接收 用户的请求,  处理请求,  做出 响应.
 
* web 服务器软件:   接受用户的 请求, 处理请求, 做出响应. (用户 通过 浏览器 发出请求.)
* 在 web 服务器软件中,  可以 部署 web 项目,  让用户通过 浏览器 来 访问这些 项目.  (这时 作为 一个 开发者,  作为 一个资源 提供者, 让别人 可以 通过 web 服务器软件 访问 我 写 的 项目  ).
* web 容器(动态 资源 只有在 这种  服务器 软件中 才能 运行.)
 
 
*   常见的 Java 相关的 web 服务器 软件:
 
 
  * webLogic : Oracle 公司.   大型的 JavaEE 服务器, 支持 所有的 JavaEE 规范, 收费的.
  * webSphere : IBM 公司,  大型的 JavaEE 服务器, 支持所有的 JavaEE 规范, 收费的.
* JBoss: JBoss 公司的,  大型的 JavaEE 服务器, 支持所有的 JavaEE 规范, 收费的.
 
* Tomcat:  Apache 基金组织, 这个 组织 做出来的 所有的 软件, 所有的 产品 都是 开源的 , 都是 免费的.   这个 组织 为 整个 软件的 发展 做出了 很大的 贡献.
这是一个 中小型的 JavaEE 服务器, 仅仅支持 少量的 JavaEE 规范(servelet / jsp 规范 是 支持的. ) , 开源的 , 免费的.
 
 
* JavaEE :  Java 语言 在 企业级 开发中 使用的 技术规范 的 总和, 一共规定了 13 项 大的 规范
* 服务器 软件:   接收 用户的请求,  处理请求,  做出 响应.
 
*   Tomcat:  web 服务器软件:
 
1. 下载 : http:// tomcat.apache.org/
2. 安装 : 解压压缩包即可. (解压的 位置路径 尽量不要有 中文 和 空格.)
* 注意: 安装的 目录 建议不要有中文 和 空格.
3. 卸载 : 删除这个目录 就行了.
4. 启动 :  
* bin / startup.bat, 双击 运行 该文件 即可.
* 访问:  在 浏览器输入: http:// localhost:8080  回车 访问.  (访问自己 Tomcat)
  *  http:// 别人的 IP :8080  . ( 访问别人的 Tomcat).
 
* 可能 遇到的 问题:
 
1.  黑窗口 一闪而过:
* 原因: 没有正确 配置 JAVA_HOME 环境变量.
* 解决方案:  正确 配置 JAVA_HOME 环境变量 即可.
 
// *** echo Using JAVA_HOME:       "%JAVA_HOME%"
startup.bat:  是一个 批处理文件,  批处理 文件 写的其实 就是(Windows) DOS 的命令.
 
catalina.bat 中 要使用 "%JAVA_HOME%" , 也就是 使用 我们电脑上 配置的 环境变量 JAVA_HOME ,   如果 配置的 不是 JAVA_HOME , 它就 找不到 对应的 JDK 来执行 这个 应用程序(Tomcat), 因为 Tomcat 这个应用程序 是 用 纯 Java 编写的, 运行的 时候需要 依赖 我们安装的 JDK .
 
2. 启动 报错:
 
启动一个 之后,  不关, 启动第二个, 报错.
Caused by: java.net.BindException: Address already in use: bind    : 端口号 已被 使用.
        1. 暴力:   找到 占用的 端口号, 并且 找到对应的 进程, 杀死 该 进程.
*  win + r , cmd ,  netstat -ano
*  找到 端口号 对应的 PID ,然后 记住这个 PID. (PID 称为 进程 ID).
  1.2 *  win + r, cmd , taskmgr : 打开 任务管理器.
(查看, 查看列, 将 PID 勾选上);   点击 详细信息,  找到 对应的 PID 数字 对应的 进程, 结束该 进程.
  2. 温柔:  修改 自身的 端口号.
* conf / server.xml
 
                   // *** 这里 是 默认端口号 .
*   修改:  <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />  中的 端口号.
 
//   改完之后 要重启 Tomcat,    这个 修改 之后的 端口号 才会 生效.
 
* 一般 会将 Tomcat 的 默认端口号 修改为 80.  80 端口号 是 http 协议的 默认端口号.
* 好处:  在 访问时 就 不用输入 端口号. (别人在 访问的 时候不用 输入端口号... )
现在 市面上 基本上 所有的 网站的 默认 端口号 都是 80. (例如; http://www.itcast.cn/ 和 http://www.itcast.cn:80  是一样的, 也可以访问到...  ).
 
5. 关闭:
// *** 例如: 按 计算机的 关机按钮, 计算机 会 帮你保存 没 保存的 数据, 结束进程, 等一系列 操作.  强制 关闭 就例如 突然 停电了, 进程 也没关, 数据也没保存.   所以 推荐 正常关闭.
1. 正常 关闭:
  * 运行   bin / shutdown.bat 批处理程序, 正常 关闭 Tomcat.
  *  ctrl + c 正常关闭.  (会出现 一些 信息 然后 关掉(自动的哈))
2. 强制 关闭:
*  点击 启动窗口的 X .
 
*** 后期 都是 通过 IDEA 开发工具 来 启动 和 关闭 Tomcat.
 
6. 配置  :
     * 部署 项目的 方式:
1. 直接 将 项目 放到 webapps 目录下 即可.
*   / hello : 项目的 访问路径  ----->  虚拟目录.
*    hello.html: 资源名称.
* 简化部署:   将项目 打成一个 war (可以先打成 zip 的 压缩包 然后 修改 扩展名 .war(因为 zip 的 打包方式 和 war 包 很像, 所以可以这么用, 但是 专业弄的话 还是 用 专业的 打成 war 包的工具, 以免 数据 丢失和 数据错误. ))包,  再将 war 包 放置到 webapps 目录下.
* war 包 会自动地 解压缩. (自动 解压, 自动删除).
 
// *** 以上 所讲的 第一种方式 都需要将 文件 从 其他的 盘符 拷到  webapps 的 目录下, 有没有办法 可以不用移动文件, 不用 拷贝文件. 就放在 原来的 位置?
 
2.
配置 conf / server.xml 文件.
在 <Host> 标签体中 配置 :
<!--部署项目-->
<Context docBase="E:\Mycode\hello" path="/hehe"/>
 
* docBase= "E:\Mycode\hello : 项目存放的 路径.
* path= "/hehe" : 你这个项目的 访问路径, 虚拟的 路径(虚拟目录).
 
 
优点:  比较灵活 , 不需要 在 拷贝文件.
缺点:  server.xml 是 tomcat 的 核心配置文件,  你在 里面 配置了 一个 项目, 你在个 项目 就是 server.xml的 一部分,  部署 很多个 项目, 就要 配置很多, 这就有可能 把 tomcat的 核心 配置文件 给 弄坏了.  (不安全, 一般 不会 这样去配置. )
 
3.  在 conf / Catalina / localhost / 创建 一个 任意名称的 xml 文件.  在文件中 编写:  
xml  文件内容:
<Context docBase="E:\Mycode\hello"  />  // *** 这里 较 上面 是将 path 删除了.
*  这样 配置 , 虚拟目录 的名称 就是 xml 文件的 名称.   (最推荐 这样部署)
优点:  是一种 热部署的 方式.  如果 不想要 这个项目了, 修改 项目的 名称 或者 扩展名 _bak , 也不用 重启 tomcat 服务器,  就访问 不到了.    在 server.xml 中 修改 要 重启 服务器 才能 生效.
 
补充:  .bat : 批处理文件, 双击 就可以运行.     .sh 在 Linux 下 是可以 执行的,  在 Windows 中 是不可以 执行的.   _bak : 表示  这是 一个 临时文件.
 
startup.bat:  是一个 批处理文件,  批处理 文件 写的其实 就是(Windows) DOS 的命令.
 
catalina.bat
 
本机的 IP 地址可能会 改动, 注意查看.
 
* 部署的 项目的 两种形式:  静态 项目 和 动态 项目.
* 目录结构 (区别)
* Java 动态项目的 目录结构 :
     -- 项目的 根目录
         -- WEB-INF 目录:
             -- web.xml :   web 项目的 核心配置 文件.
                    -- classes 目录: 放置 字节码 文件的 目录.
                       -- lib 目录: 放置 依赖的 jar 包.
       有 WEB-INF 的 目录的 项目 我们 称为 动态的 项目 .
 
 
 
 
* 将 Tomcat  集成到 IDEA 中, 并且 创建 JavaEE 的 项目, 部署 项目.  (重要).
现在都是在 本地 Tomcat 文件夹中 启动 Tomcat , 比较 麻烦, 以后 集成到 IDEA 中, 就可以在 IDEA 中 启动 Tomcat 服务, 来 关闭 , 发布项目.  较为 方便.
 
Local : 本地.
Remote: 远程的.
 
一般 Tomcat 的 启动 都伴随 着 web  项目的 启动,   也就是说, Tomcat 中 要部署 一个 web 项目 再 启动, 这样 才有意义.
 
new Module
创建一个 Java Enterprise : Java 企业版.
 
Java EE 7
 
web Application(3.1)
 
Create web.xml
 
Deployment: 部署的 项目.
Application context : /  虚拟的 目录,  / 表示 根目录.     http://localhost:8080/index.jsp
 
在  web.xml 配置文件中 默认 配置的 index.jsp 是 默认的 首页.
 
web / 新建 html 文件.
 
 
run / add configurations / Update resources  Update resources:  当 更新了 这个 资源 和 类的 时候,   让它 重新 部署 这个 项目.   例如:  新增 一个 html 网页, 如果 不改这个 我们 要重新 启动 Tomcat 服务器, 改了 这个 就不需要了, 它会 自动的 重新 部署 项目.
 
Update classes and resources: 这个 是 改了 Java 代码 就重新部署, Java 代码 我们 一般改动的 次数较多, 所以 建议 不选这个,  经常 重新部署, 影响 性能.   (这就是 热部署. )
 
新的 网页 项目 部署在 web 目录下, 不是 WEB-INF(放的是 web.xml) , 不要 弄错了, 否则 访问 不了.
 
这样就可以将 你的 项目 , 比如 网页 放到 这个 web 目录下,  然后 你这边 只要将 Tomcat 启动了, 别人 就能够在 浏览器中,  输入正确的 路径来访问 你的 网页资源. 

 
 
 

 
 

 
 
 
 
 
 

 
 

Java Tomcat 使用(IDEA)的更多相关文章

  1. Win2008R2+java+tomcat安装

    Win2008R2+java+tomcat安装 准备软件: jdk-7u25-windows-x64.exe apache-tomcat-7.0.42-windows-x64.zip 一.安装java ...

  2. BAE3.0上的java+tomcat代码发布

    ---------------------------------2016/01/25更新-------------------------------------- 最近两天去百度开放云,发现它再也 ...

  3. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  4. docker的简单搭建(java/tomcat 环境)

    1.一副图简单了解下docker的布局,它是虚拟的,docker分为私服.镜像.容器三个模块 一般从私服pull镜像,镜像run一个容器,我们把容器作为一个虚拟服务,里面可以独立运行进程有独立的内网I ...

  5. Java进阶(十)java tomcat中context配置

    Tomcat中Context的配置 问题: java tomcat中<context> docBase属性是什么意思? 元素的属性: path:指定访问该Web应用的URL入口.  doc ...

  6. java+tomcat开发环境搭建

    java+tomcat开发环境搭建 一.jdk环境变量设置 ...........这里省略n个字............. 二.tomcat环境变量设置 安装好tomcat后 1.新建环境变量: CA ...

  7. Java Tomcat下载、安装和环境变量配置

    win10下Tomcat的下载.安装和环境变量的配置 -----made by siwuxie095                             1.首先到Tomcat官网,传送阵:点击开 ...

  8. centos tomcat/resin安装配置 卸载系统自带的java tomcat安装配置 安装JDK resin安装配置 第二十八节课

    centos  tomcat/resin安装配置  卸载系统自带的java  tomcat安装配置  安装JDK   resin安装配置    第二十八节课 tomcat和java都不需要编译 tom ...

  9. Docker学习笔记之二,基于Dockerfile搭建JAVA Tomcat运行环境

    前言 在第一篇文字中,我们完全人工方式,一个命令一个命令输入,实现一个 java tomcat运行环境,虽然也初见成效,但很累人.如果依靠依靠脚本构建一个Tomcat容器实例,一个命令可以搞定,何乐而 ...

  10. CentOS7下部署java+tomcat+mysql项目及遇到的坑

    CentOS 7 下安装部署java+tomcat+mysql 前置:CentOS7安装:https://jingyan.baidu.com/article/b7001fe1d1d8380e7382d ...

随机推荐

  1. 【bzoj5339】[TJOI2018]教科书般的亵渎(拉格朗日插值/第二类斯特林数)

    传送门 题意: 一开始有很多怪兽,每个怪兽的血量在\(1\)到\(n\)之间且各不相同,\(n\leq 10^{13}\). 然后有\(m\)种没有出现的血量,\(m\leq 50\). 现在有个人可 ...

  2. [洛谷P1373][题解]小a和uim之大逃离

    (别点我我不是题目) 这道题可以很容易看出是一道dp(因为是在dp关卡里找的) 稍微想一下就可以yy出一个不错的状态: f[i][j][k][0/1]代表走到了点(i,j).膜液量相差k(小a-uim ...

  3. 论文阅读:EGNet: Edge Guidance Network for Salient Object Detection

    论文地址:http://openaccess.thecvf.com/content_ICCV_2019/papers/Zhao_EGNet_Edge_Guidance_Network_for_Sali ...

  4. 在mysql中如何写注释

    MySql--三种注释写法 #这是注释/*注释内容*/ --  注释   (--与注释内容之间必须加空格)

  5. Spring中,关于IOC和AOP的那些事

    一.spring 的优点? 1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很 ...

  6. kafka速度快的原因

    我们都知道Kafka非常快,比绝大多数的市场上其他消息中间件都要快.这里来研究下那么为什么Kafka那么快(当然不会是因为它用了Scala). Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上 ...

  7. ASP.NET中的身份验证

    身份验证方式windows passport form none授权allow 允许deny 拒绝特殊符号 *代表所有用户 ?代表匿名用户跳转配置<system.web><autho ...

  8. RabbitMQ与Spring的框架整合之Spring AMQP实战

    1.SpringAMQP用户管理组件RabbitAdmin. RabbitAdmin类可以很好的操作RabbitMQ,在Spring中直接进行注入即可.注意,autoStartup必须设置为true, ...

  9. 解决NuGet下载太慢的问题

    以下载CefSharp.Wpf v57.0.0版本为例: 1.打开NuGet官网:https://www.nuget.org/ 2.输入CefSharp.Wpf,点击查询,如下所示: 3.确认版本正确 ...

  10. Git - Git分支管理策略

    前言 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的c ...