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 启动了, 别人 就能够在 浏览器中,  输入正确的 路径来访问 你的 网页资源. 

 
 
 

 
 

 
 
 
 
 
 

 
 

最新文章

  1. Javascript自执行匿名函数(function() { })()的原理分析
  2. SJGestureUnlock快速集成手势解锁
  3. STM32学习笔记——OLED屏
  4. java 读取文件内容 三种形式及效率对比
  5. [转载]PO BO VO DTO POJO DAO概念及其作用
  6. Js文字特效—文字段逐个变色循环
  7. EXCEL 跨表比较数据
  8. linkscrpit
  9. @synthesize和@dynamic分别有什么作用?
  10. MyEclipse2016添加外部的maven插件
  11. Linux命令 文件压缩及压缩命令
  12. HTML 笔记 基础1
  13. 201521123063 《Java程序设计》 第9周学习总结
  14. Android手机通过APN设置上网的方法
  15. [HDU5663]Hillan and the girl
  16. Confluence 6 数据库字符集编码和问题
  17. Linux命令之vi篇
  18. 2017.7.11 linux 挂载
  19. 关于vs设置其他主题配色问题
  20. Lucene - CustomScoreQuery 自定义排序

热门文章

  1. 使用Eclipse开发Web项目(JSP)——简单登录、无sql
  2. TypeScript初体验
  3. 设置fiddler抓取安卓手机的包
  4. 手机投屏工具与HOSTS切换工具
  5. python大作业二
  6. 【algo&amp;ds】9.拓扑排序、AOV&amp;AOE、关键路径问题
  7. python内置函数的使用(一)
  8. 为什么 Go 标准库中有些函数只有签名,没有函数体?
  9. JS基础语法---总结
  10. iOS开发中,获取图片之后保存或下载到本地相册中