Tomcat

一、 服务器

    1. 动态web资源运行需要服务器环境
    2. 客户端发送请求到服务器 , 服务器调用动态web资源
  1. Servlet容器 、 web容器 、服务器
    1. Servlet容器

      1. java中的动态资源开发技术为Servlet/JSP,但是Servlet、JSP本身不能直接运行,需要运行他们的环境,这样的环境就叫做Servlet容器。
    2. web容器
      1. 能够运行web应用的环境叫做web容器。Servlet容器就是web容器,但是web容器不一定是Servlet容器,因为运行.net、PHP的服务器也是web容器,但是不能运行Servlet
    3. 服务器
      1. 服务器从硬件上来说,就是一台电脑,只不过配置较高,而今天,我们所学的是服务器的软件,能够让外界访问,对外界提供服务的就是服务器,服务器就是容器,web容器/Servlet容器都是服务器。

二、常见的服务器

  1. .WebLogic: BEA公司,大型,收费,支持J2EE规范
  2. WebSphere:IBM公司,大型,收费,支持J2EE规范
  3. Tomcat :Apache组织,小型,免费,支持JSP以及Servlet规范

三、tomcat下载安装配置

  1. 下载

    1. 下载地址:http://tomcat.apache.org/
    2. 注意: 下载时不同的版本
      1. .zip为压缩版 , 解压后不需要安装 , 可以直接使用
      2. .exe为安装本 , 安装 后才能使用
  2. 安装
    1. 解压

      1. 将解压版.zip包拷贝到要安装的目录下,解压,改名为tomcat7.0
      2. 注意,安装目录中不允许有空格和中文
    2. 配置环境
      1. tomcat是由java编写的 , 所以tomcat运行需要java的环境JDK的支持。
      2. 计算机>属性>高级系统设置>环境变量>系统变量>新建>变量名:JAVA_HOME,变量值:jdk根目录>确定
    3. 启动tomcat
      1. 通过 [tomcat]/bin/startup.bat文件 启动tomcat服务器
      2. 通过 [tomcat]/bin/shutdown.bat文件 关闭tomcat服务器
      3. 浏览器访问 http://localhost:8080 如果能够看到tomcat的首页就证明tomcat安装配置成功
    4. 修改默认端口
      1. 服务器在启动之后默认监听的是8080端口号, 每次访问时都需要在IP地址或者是主机名后面跟上这个端口号, 如果想省略不写, 可以将8080改为80即可!
      2. 找到[tomcat]/conf/server.xml文件并打开,第70行修改如下重新启动后生效!
  3. tomcat安装常见问题
    1. 端口被占用

      1. 看是否已经打开tomcat,或是tomcat在关闭时没有正确的关闭,可以运行shutdown.bat命令,然后再次打开
      2. 可以在cmd窗口中使用netstat -ano命令查询出哪个程序占用了端口,根据pid,在任务管理器的服务中找到此pid,结束这个程序后再启动tomcat即可
    2. 安装路径
      1. tomcat安装路径中一定不能有中文和空格,可能一时半会没问题,但是不知道什么时候就可能出现意外。
    3. JDK环境变量
      1. java必须配置在系统环境变量中 , 或是能让tomcat检测到的地方
    4. 查看具体的安装问题通过查看ltomcat安装目录下的日志文件查看

四、tomcat目录结构

  1. bin — 存放tomcat批处理文件的目录
  2. conf — 存放tomcat配置文件的目录
  3. lib — 存放tomcat运行时依赖的jar包
  4. logs — 存放tomcat运行时产生的日志文件的目录
  5. temp — 存放tomcat运行时产生的临时文件的目录
  6. webapps — 这是和开发人员关系最大的目录,是用来存放web应用的目录,我们开发的web资源最终要保存在这个目录下,外界就可以访问了
  7. work — 存放tomcat服务器运行时产生的工作文件的目录

五、web应用

  1. 所谓的WEB应用就是将为了实现某一个功能而准备的所有WEB资源, 必须按照一定的目录结构组织起来!
  2. 如何自己组织一个web应用
  3. 部署web应用到虚拟主机中
    1. 方式一:
    2. 方式二:
    3. 方式三:
  4. 配置缺省的web应用
    1. 方式一:将第一种部署方式的path配置为空(path=“”)即可
    2. 方式二: 将第二种部署方式的xxx.xml的配置文件改为ROOT.xml即可
    3. 方式三:只需将webapps目录下WEB应用文件夹的名字配置为ROOT即可 。
    4. 注意:三种方式如果都配置了缺省的web应用 , 则优先级为: 第一种>第二种>第三种
  5. 配置缺省的web主页

    1. 在[WEB应用]/WEB-INF目录下, 在web.xml文件中的根标签下添加如下配置:(将1.html设置成主页!!!)

      <?xml version="1.0" encoding="utf-8"?>
      <web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><welcome-file-list><welcome-file>1.html</welcome-file></welcome-file-list>
      </web-app>
      

六、虚拟主机

  1. 我的网站做好了,自己架设一台服务器代价也不算小,所以对于个人而言,多个用户共同租用一台服务器——即购买虚拟主机就成了比较现实的选择。
  2. 所谓的虚拟主机就是tomcat服务器中的一个站点, tomcat服务器中可以配置多个站点,在访问时就好像访问一台独立的主机一样. tomcat服务器中的一个站点就可以称之为是tomcat服务器模拟出来的一台虚拟主机.
  3. 配置虚拟主机
    1. 第一步:
    2. 第二步:
    3. 注意:当可以上网的时候,很有可能你输入的网址不能生效,直接去访问百度去了,这时候需要清dns缓存,打开cmd窗口,输入ipconfig/flushdns,浏览器清缓存再次打开即可
  4. 配置默认的虚拟主机

七、 其他相关

  1. 打war包

    1. 为什么要打war包?

      1. 体积小, 方便传输
      2. 将war包直接放进虚拟主机默认管理目录中 , 会自动解压并发布 。
    2. 方式一 :
      1. 在cmd窗口中 , 先进到web应用的根目录 , 通过“jar -cvf xx.war *” 命令 , 可以将当前目录下的所有文件及目录达成一个war包
      2. 注意:
        1. 要想将war包放入自己配置的虚拟主机中自动解压并发布 , 则需要对虚拟之际完全配置 , 具体参考默认的localhost 。
        2. 这条命令需要java环境的支持 , 确保java环境在当前目录下可用 。
    3. 方式二:
      1. 直接将文件内容压缩为.zip包, 将名字改为xxx.war即可 , 然后将war包放入虚拟主机下即可 。 (不能有中文)
  2. 通用的web.xml文件
    1. 在[tomcat]/conf/目录下的web.xml文件, 是一个通用的web.xml文件, 这个web.xml文件的内容, 将会被所有WEB应用web.xml文件所”继承”。
    2. 比如刚安装tomcat的时候,访问localhost直接会进入tomcat主页,而tomcat中WEB-INF下的xml中并未配置,因为继承了通用web.xml

八、HTTP协议

  1. 定义: 一种用于规定客户端和服务器之间的通讯的方式 。
  2. 三个基本原则
    1. 基于请求响应模型
    2. 一次请求对应一次响应
    3. 请求只能有客户端发出 , 服务器只能被动的等待请求后作出响应 。
  3. http协议详解

    1. http请求

      1. http请求有三部分组成

        1. 请求行:包含请求 方式、请求 的资源、所遵循的协议
        2. 请求头:下面详解
        3. 实体内容 : 需要传递 给服务器的内容
      2. 详解

        1. 请求行:GET /news3/1.html HTTP/1.1
        2. 请求方式:一共有7种请求方式,但真正使用的只有两种GET、POST
          1. POST和GET之间的区别:

            1. GET:请求请求参数位于URL后面,所能传输的请求参数最大不超过1KB,安全性比较低。
            2. POST:请求参数位于请求的实体内容中,没有大小限制,也比较安全
            3. 只有当一个表单method明确被指定为POST时,才是POST提交,其他情况下都是GET提交.
        3. 请求的资源:/news3/1.html
        4. 所遵循的协议:HTTP/1.1
        5. 请求头:

          1. !Host: www.tedu.cn:80 – 需要访问的虚拟主机的名称
          2. User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) – 客户端的基本信息
          3. Accept: text/html,image/* – 通知服务器当前浏览器可以接受那些格式的数据
          4. Accept-Language: en-us,zh-cn – 浏览器接受的语言环境,和国际化相关的头
          5. Accept-Encoding: gzip,compress – 浏览器可以接受的压缩格式
          6. Accept-Charset: ISO-8859-1 – 浏览器可以接受的字符集编码
          7. Referer: http://www.tedu.cn/index.jsp – 指是从哪个页面跳转过来的,这是和防盗链相关的头。
          8. Cookie– 和cookie相关的头
          9. Connection: close/Keep-Alive – 是否继续保持连接
          10. Date: Fri, 17 Sep 2017 18:23:51 GMT – 当前发送请求的时间
          11. 实体内容 :

            1. 当post提交内容时 , 会存在参数 , 就是实体内容 。 如:

              表单属性:
              <form method="post" action=".....">
              
    2. http响应
      1. http响应有三部分组成

        1. 状态行: 包含所遵循的协议 、 状态码
        2. 响应头: 下面详解
        3. 实体内容: 服务器发送回的内容
      2. 详解
        1. 状态行: HTTP/1.1 200 ok

          1. 遵循的协议: http/1.1
          2. 状态码: 就是一个三位数的值 , 用来表示服务器 队请求处理的结果 。
            1. 常见的状态码:

              1. 200 : 表示服务器成功的处理该请求
              2. 302: 和location配合实现请求重定向
              3. 304/307: 通知浏览器使用缓存
              4. 404: 表示请求的资源不存在, 客户端错误
              5. 500: 服务器处理请求时出现了错误!
        2. 响应头
          1. !!!Location: http://www.tedu.cn/index.jsp – 配合302使用实现请求重定向
          2. Server:apache tomcat – 服务器的基本信息
          3. Content-Encoding: gzip – 服务器发送的数据使用的压缩格式
          4. Content-Length: 80 – 服务器发送的数据的大小
          5. Content-Language: zh-cn –服务器发送的数据使用的语言环境 国际化相关的头
          6. !Content-Type: text/html; charset=GB2312 – 服务器发送的数据是什么格式的,如果是字符格式的数据,则还可以通知服务器发送的数据使用的是什么编码,浏览器会根据这个头指定的编码决定使用哪个编码来打开收到的数据
          7. !Refresh: 1;url=http://www.tedu.cn – 定时刷新相关的头,通知浏览器,过几秒后自动刷新访问哪个地址
          8. Content-Disposition: attachment;filename=aaa.zip – 通知浏览器以附件的形式打开发送过去的数据,是和文件下载相关的头
          9. !!!Set-Cookie:SS=Q0=5Lb_nQ; path=/search – 和Cookie相关的头
          10. !Expires: -1 – 通知浏览器是否缓存
          11. !Cache-Control: no-cache – 通知浏览器是否缓存
          12. !Pragma: no-cache – 通知浏览器是否缓存–之所以一个功能有三个头,是因为历史原因.所以为了网页的兼容性考虑,通常这三个头要一起使用
          13. Connection: close/Keep-Alive – 是否保持连接
          14. Date: Fri, 17 Feb 2017 18:24:11 GMT – 响应时的时间
      3. 实体内容:
        1. 就是服务器响应的内容。

大数据WEB阶段(八)Tomcat服务器安装与详解、HTTP协议详解相关推荐

  1. 大数据WEB阶段 TransientDateAccessResourceException

    大数据WEB阶段 TransientDateAccessResourceException 一 . 分析 如果数据库保存的字段有时间 , 但是没有给该字段赋值时 ,则该字段默认是0000-00-00 ...

  2. 大数据WEB阶段(九)Servlet+Request

    Servlet与Request 一.概述 Servlet 是sun公司提供的一门用于开发动态web资源的技术 按照这套规范写出来的servlet可以放置在web应用中在servlet容器中运行 . 开 ...

  3. 大数据WEB阶段 (六)MySql详解(一)

    MySql(二) 一.概述 什么是数据库 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,简而言之就是存储数据的仓库. 数据库的分类 层次式数据库.网络式数据库.关系型数据库 数 ...

  4. 大数据WEB阶段(十八)数据库事务

    数据库事务 一.概述 事务的概念 事务是指逻辑上的一组操作 , 组成这组操作的各个单元 , 要么全部成功 , 要么全部失败 . 如:银行转账.. 转账核心操作其实就是两条sql ,两条都执行成功才算成 ...

  5. 大数据WEB阶段(九)Myeclipse中配置Tomcat并发布项目

    在myeclipse配置tomcat ,并将项目发布到tomcat中 一.在myeclipse中配置tomcat 二.发布项目到tomcat中 注意项目名称是自己要发布的项目 , 然后finish . ...

  6. 大数据WEB阶段Maven安装配置与使用

    Maven 零.目录 Maven简介 Maven 的安装与配置 创建Maven工程 创建maven-web工程 搭建私服 使用本地资源库 阿里私服 maven命令 上传本地工程到私服中 maven-w ...

  7. 大数据WEB阶段总结

    一.概述 HTTP协议 web容器 - Tomcat 静态web资源 - 本质上是文件 html css js 图片 音频 视频 flash- 动态web资源 - 本质上是程序 Servelt JSP ...

  8. 大数据WEB阶段(十六)JavaEE三大 核心技术之监听器Listener

    Listener监听器 一.概述 Servlet三大核心技术之一 Servlet.Filter.Listener Servlet技术规范中定义了八种监听器用来监听web应用开发中对应的事件. 监听器可 ...

  9. 大数据WEB阶段 (十)Response、ServletConfig、ServletContext、资源跳转三种方式

    Response.ServletConfig.ServletContext.资源跳转三种方式 - (一)Response 一.Response概述 在doGet和doPost方法的参数中,HttpSe ...

最新文章

  1. ORM 和 JDBC有何不一样
  2. MTK for Google AttestationKey介绍
  3. tensorflow随笔-tf.while_loop
  4. 牛客网学习笔记-day01
  5. matplotlib可视化必知必会富文本绘制方法
  6. ARM开发软件及实用软件介绍
  7. [转载]织梦后台添加新变量-内容模型
  8. 前端调数据会经常用到的事件处理
  9. CentOS7.x编译安装nginx,实现HTTP2
  10. 【王道计组笔记】储存系统(1):基本概念
  11. vim中替换字符串的方法有哪些
  12. java cropper 上传_基于cropper.js的图片上传和裁剪
  13. SAR图像超分辨技术
  14. 深入理解快速排序和 STL 的 sort 算法
  15. php写phalapi,PhalApi框架
  16. 红色建筑装饰公司营销型网站织梦模板
  17. <<计算机操作系统(慕课版)>>第五章参考答案
  18. android7.1系统集成高德地图
  19. C语言 希尔排序 使用监视哨
  20. Python批量下载Bilibili(B站)1080P60fps视频-pip打包安装

热门文章

  1. Asp.Net Core(.net内核)
  2. mysql存储过程打不开了_请问mysql存储过程的问题,我找了几个例子一个都运行不起来,...
  3. 计算机图形学与相关学科的关系,哈尔滨工业2015博士招生计算机图形学与人机交互设计大纲...
  4. r语言中mpg数据_R语言常用的数据处理的包(1)
  5. 安装库_Python快速安装库的靠谱办法
  6. Java多线程-线程状态
  7. Flink源码分析 - 源码构建
  8. 类方法classmethod 绑定方法
  9. [BZOJ 2200][Usaco2011 Jan]道路和航线 spfa+SLF优化
  10. Notepad++中的高级查找