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. Linux系统iptables与firewalld防火墙

    iptables iptables服务用于处理或过滤流量的策略条目(规则),多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类. 在进行路由选择前处理数据包(PREROUTING) ...

  2. APScheduler学习

    说明 APScheduler是一个 Python 定时任务框架,使用起来十分方便.提供了基于日期.固定时间间隔以及 crontab 类型的任务,并且可以持久化任务.并以 daemon 方式运行应用. ...

  3. November 24th, Week 48th, Sunday, 2019

    Once you replace negative thoughts with positive ones, you will start having positive results. 淘汰消极思 ...

  4. 运维工具ansible-使用与介绍(转)

    转自 Linux轻量级自动运维工具-Ansible浅析 - ~微风~ - 51CTO技术博客http://weiweidefeng.blog.51cto.com/1957995/1895261 Ans ...

  5. 判断上传的Excel为.xlsx还是.xls

    这个问题其实蛮简单的,具体操作如下 判断获取到上传的文件id后下载文件,然后拿到文件名称,截取文件名称后缀,判断是.xlsx还是.xls进行不同的操作即可

  6. maven配置阿里云仓库镜像

    全局配置 修改settting文件 在mirrors标签下添加子节点. <mirror> <id>nexus-aliyun</id> <mirrorOf> ...

  7. Business Model Design 业务模型设计

    Note This section is split into two parts, which describe the use of two different Object-relational ...

  8. Java 的 IO 流

    接着上一篇的 “Java 的 File 类” 的随笔,在File类的基础上,我们就走进Java的IO流吧. 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在 ...

  9. 使用Navicat Premium 比较PostgreSql数据库 dev环境与test环境差异

    Navicat Premium 功能很强大,支持不同数据库客户端的连接,并且使用工具可以生成两个库差异的sql脚本,方便dev与test环境表结构同步,具体操作方法如下 单击运行,实现两个库中模式表结 ...

  10. 在做nav-bar部分点击路由跳转相同地址时,控制台报错问题。

    报错信息: Uncaught (in promise) NavigationDuplicated {_name: "NavigationDuplicated", name: &qu ...