[TOC]

一、tomcat&http协议

1.1 企业级开发简介

(1)JavaEE规范

  • JavaEE规范是J2EE规范的新名称,早期被称为J2EE规范,其全称是Java 2 Platform Enterpris Edition,它是由SUN公司领导的、各厂家共同制定的并得到广泛认可的工业标准(JCP组织成员)。之所以改名为javaEE,目的是让大家清楚J2EE只是Java企业应用。在2014年底中国软件技术大会Ioc微容器(也就是jdon框架的实现原理)演讲中指出:我们需要一个跨J2EE/WEB/EJB的微容器,保护我们的业务核心组件,以延续它的生命力,而不是依赖J2SE/J2EE版本,此次改名,实际也反映了业界这种共同心声。
  • JavaEE规范是很多Java开发技术的总称,这些技术规范都是沿用自J2EE的。一共包括了13种技术规范,例如:jsp、servlet,jndi,jaxp,jdbc,jni,jaxb,jmf,jta,jpa,EJB等。
  • 其中,jcp组织的全称是Java community process,它是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新。成立于1998年,官网是:JCP
  • JavaEE的版本是延续了J2EE的版本,但是没有继续采用其命名的规则,J2EE的版本从1.0开始到1.4结束,而JavaEE版本是从JavaEE 5开始,目前最新的版本是JavaEE 8
  • 详情请参考:JavaEE 8规范概览(https://www.oracle.com/technetwork/cn/java/javaee/overview/index.html

    (2)web概述

  • web在英文当中的含义是网状物,网络。在计算机领域,它通常指的是后者,即网络。向我们前面接触的www,它是由三个单词组成的,即world wide web,中文含义是万维网。而我们前面所学习的HTML,CSS和JS的参考文档《W3School全套教程》中的w3c就是万维网联盟。他们的出现都是为了让我们在网络的世界中获取资源,这些资源的存放之处,我们称之为网站。我们通过输入网站的地址(即网址),就可以访问网站中的资源。在网上我们能访问到的内容全是资源(不区分局域网还是广域网)。只不过,不同类型的资源展示的效果不一样。

  • 首先,我们先来介绍一下资源的分类,分为静态资源和动态资源,其中:

    • 静态资源是:网站中提供给人们展示的资源是一成不变的,也就是说不同的人或者在不同时期看到的内容都是一样的。例如:我们看到的新闻,网站的使用手册,网站的功能说明文档等等。而作为开发者,我们所编写的html、css、js、多媒体和图片等都可以称为静态资源。
    • 动态资源是:网站中提供给人们展示的资源是由程序产生的。在不同时间或者不同的人由于不同的身份,所看到的内容是不相同的 。例如:我们在12306上购买火车票,火车票的余票数由于时间的变化会逐渐减少,直到最后没有余票。还有我们在csdn上下载资料,只有登录成功后,且积分足够是才能下载。否则就不能下载等等,这就是访客身份和会员身份的区别导致的结果不同。作为开发人员,我们编写的jsp、servlet、php、asp等等都是动态资源。

      (3)系统结构

  • 基础结构划分:

    • C/S结构:它指的是客户端—服务器的方式。其中C代表的是client,S代表的是服务器。C/S结构的系统设计图如下:

Java web - 图1

  • B/S结构:它指的是 浏览器—服务器方式。其中B代表的是Browser(浏览器),S代表的是服务器,B/S结构的系统设计图如下:

Java web - 图2

  • 技术选型划分

    • model1模型
    • model2模型
    • MVC模型
    • 三层架构+MVC模型

      (4)两种结构的区别与优略

  • 区别

    • 硬件环境不同,C/S结构通常是建立在专用的网络上的或者小范围的网络环境上的(即局域网),而且必须要安装客户端。而B/S结构是建立在广域网上的,适应范围强,通常有操作系统和浏览器就行。
    • C/S结构比B/S结构更安全,因为用户群相对固定,对信息的保护更强。
    • B/S结构维护升级比较简单,而C/S结构维护升级相对困难。
  • 优略
    • C/S:是能充分发挥客户端PC的处理能力的。很多工作可以在客户端处理后在提交给服务器,对应的优点就是客户端响应速度快
    • B/S:总体拥有成本低、维护方便、分布性强、开发简单,可以不用安装任何专门的软件就可以实现在任何地方进行操作,客户端零维护,系统的扩展非常容易,只要有一台能上网的电脑就可以使用。

1.2 tomcat服务器

(1)关于服务器的介绍

  • 服务器的概念非常的广泛,它可以指代一台特殊的计算机,一般这种计算机相比普通的计算机运行更快、负载更高、价格更贵、磁盘更大等等。也可以指代用于部署网站的应用。我们这里说的服务器,其实就是web服务器,或者是应用服务器。它本质就是一个软件,一个应用。作用是发布我们的应用(工程),让用户可以通过浏览器访问我们的应用。
  • 常见的应用服务器有: | 服务器名称 | 说明 | | —- | —- | | weblogic | 实现了JavaEE规范,重量级的服务器。又称为JavaEE容器 | | websphereAS | 实现了JavaEE规范,重量级的服务器。 | | JBOSSAS | 实现了JavaEE规范,重量级的服务器。免费的 | | tomcat | 实现了jsp、servlet规范,是一个 轻量级的服务器,开源免费的。 |

(2)tomcat的下载与安装

  • tomcat官网下载地址:tomcat.apache.org

Java web - 图3

(3)tomcat各版本所需支持

Java web - 图4

(4)tomcat目录结构详解

Java web - 图5

(5)tomcat的基本使用

  • 启动与停止
    • tomcat服务器的启动文件在二进制文件目录中的startup.bat(window系统)或者startup.sh(linux系统)
    • tomcat服务器的停止文件也在二进制文档目录中shutdown.bat(window系统)或者shutdown.sh(Linux系统)
  • 启动问题
    • 启动一闪而过:没有配置环境变量,配置上Java_home环境变量即可
    • Address already in use :JVM_Bind:端口被占用;找到占用该端口的应用,如果占用该端口的应用不重要,使用cmd命令:netstat-a-o 查看pid,在任务管理器中结束此应用;或者修改tomcat目录下的\conf\server.xml文件中的配置,如下图 :

Java web - 图6

(6)IDEA集成tomcat服务器

  • 第一步

Java web - 图7

  • 第二步

Java web - 图8

  • 第三步

Java web - 图9

  • 第四步

Java web - 图10

(7)Linux系统下安装tomcat

  • 下载tomcat

Java web - 图11

  • 上传到Linux系统
    • 在crt上使用alt+p,将Windows系统上的软件拖到Linux系统即可(在root目录)
  • 在/usr/local新建一个文件夹tomcat

    mkdir /usr/local/tomcat
    
  • 将tomcat…tar.gz移动到/usr/local/tomcat下

    mv apache-tomcat-8.5.32.tar.gz /usr/local/tomcat/
    
  • 进入/usr/local/tomcat目录,解压tomcat

    cd /usr/local/tomcat
    tar -xvf apache-tomcat-8.5.32.tar.gz
    
  • 进入/usr/local/tomcat/apache-tomcat-8.5.32/bin目录

    cd /usr/local/tomcat/apache-tomcat-8.5.32/bin
    
  • 启动 tomcat

    #方式1:
      sh startup.sh
    #方式2:
      ./startup.sh
    
  • 修改防火墙规则 ```shell 方式1:service iptables stop 关闭防火墙(不建议); 用到哪一个端口号就放行哪一个(80,8080,3306…)

方式2:放行8080 端口 修改配置文件 cd /etc/sysconfig vi iptables 复制(yy , p)
-A INPUT -m state —state NEW -m tcp -p tcp —dport 22 -j ACCEPT 改成 -A INPUT -m state —state NEW -m tcp -p tcp —dport 8080 -j ACCEPT 重启加载防火墙或者重启防火墙 service iptables reload
或者 service iptables restart


<a name="AiSoL"></a>
## 1.3 tomcat发布Java web应用

- 方法一:只需要将web工程的目录复制到Tomcat的webapps下即可;
- 方法二:找到Tomcat下的conf目录下:Catalina\localhost\,创建如下xml配置文件
```xml
<!-- context表示一个工程的上下文,path表示一个工程的访问路径;docBase表示的是工程的真实目录 -->
<Context path="\donghuaxiangce" docBase="D:\study\web前端\web\Animation_Album"/>

(1)Javaweb工程的概述

  • JavaWeb应用是一个全新的应用种类。这类应用程序指供浏览器访问的程序,通常也简称为web应用。
  • 一个web应用由多个静态web资源和动态web资源组成,例如:html、css、js文件,jsp文件、java程序、支持jar包、工程配置文件、图片、音视频等等。
  • Web应用开发好后,若想供外界访问,需要把web应用所在目录交给Web服务器管理(Tomcat就是Web服务器之一),这个过程称之为虚似目录的映射。

(2)Javaweb工程应用的目录结构详解

myapp--------------应用名称
    1.html
    css/css.css
    js/demo.js
    WEB-INF--------如果有web.xml或者.class文件时,该目录必须存在,且严格区分大小写。
           --------该目录下的资源,客户端是无法直接访问的。
           --------目录中内容如下:
        classes目录----------------web应用的class文件(加载顺序:我们的class,lib目录中的jar包,tomcat的lib目录中的jar包。优先级依次降低)
        lib目录--------------------web应用所需的jar包(tomcat的lib目录下jar为所有应用共享)
        web.xml-------------------web应用的主配置文件
  • Javaweb项目的创建
  • 第一步

Java web - 图12

  • 第二步

Java web - 图13

  • 第三步

Java web - 图14

  • 第四步

Java web - 图15

(3)Javaweb应用的部署

  • IDEA部署
    • 第一步

Java web - 图16

  • 第二步

Java web - 图17

  • 第三步

Java web - 图18

  • war包的发布
    • 第一步:使用jar-cvf war 报的名称 ;当前目录中哪些资源要打入war包中

Java web - 图19
Java web - 图20

  • 第二步:将打好的war拷贝到tomcat的webapps目录中

Java web - 图21

  • 第三步:启动服务器时,tomcat会自动解压

Java web - 图22

(4)tomcat配置虚拟目录(路径)

  • 虚拟目录的配置,支持两种方式,第一种是通过在主配置文件中添加标签实现,第二种就是通过写一个 独立的配置文件实现。
  • 第一种方式:在server.xml的元素中 添加一个元素。
    • path:访问资源URI。URI名称可以随便起,但是必须在前面加一个/
    • docBase:资源所在的磁盘物理地址。
  • 第二种方式:是写一个独立的xml配置文件,该文件名可以随便起。在文件中写一个元素。该文件要放在tomcat目录中的cof/Catalina/localhost/目录下。
  • 注意:在使用了独立的配置文件后,访问的资源URI就变成了/+文件的名称。而Context的path属性就失效了。

(5)tomcat配置虚拟的主机

  • 元素中添加一个其中:
    • name:指定主机的名称
    • appBase:当前主机的应用发布目录
    • unparkWARs:启动时是否自动解压war包
    • autoDeploy:是否自动发布。 ```xml


<a name="cZGlS"></a>
### (6)tomcat的默认配置

- 配置默认的端口
   - Tomcat服务器主配置文件中配置着访问端口,它在配置文件中写的值是:8080。但是它不是Tomcat的默认端口。我们此处说的默认端口是,当使用默认值的时候,端口号可以省略。Tomcat的默认端口是80。
   - 配置默认端口如下:
```xml
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
  • 配置默认的应用
    • 有两种方式配置默认应用。
      • 第一种:把要作为默认应用的应用,名称改为ROOT。放到webapps目录中。

Java web - 图23

  - 第二种:写一个独立的配置文件,文件名称为ROOT.xml。注意:ROOT必须大写。当使用了独立的ROOT.xml文件时,webapps下ROOT应用就不是默认应用了。

Java web - 图24

  • 配置默认的主页
    • 首先要明确的是,配置默认主页是针对应用说的。是应用的默认主页。在应用的web.xml中配置:
      <welcome-file-list>
      <welcome-file>默认主页</welcome-file>
      </welcome-file-list>
      <!--例如-->
      <welcome-file-list>
      <welcome-file>index.html</welcome-file>
      <welcome-file>index.htm</welcome-file>
      <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      

二、http协议

2.1 http协议的概述

(1)http协议的概念

  • HTTP的全称是:Hyper Text Transfer Protocol,意为超文本传输协议。它指的是服务器和客户端之间交互必须遵循的一问一答的规则。形容这个规则:问答机制、握手机制。它规范了请求和响应内容的类型和格式。HTTP协议是由W3C组织管理和维护的。
  • http协议的版本
    • 目前HTTP协议主要是1.0版本和1.1版本。这两个版本的区别主要是两个方面。
      • 第一:HTTP1.1版本比1.0版本多了一些消息头。
      • 第二:HTTP1.1版本和1.0版本的执行过程不一样。执行过程如下: | http1.0 | http1.1 | | —- | —- | | 创建连接(TCP/IP) | 创建连接(TCP/IP) | | 发送请求 | 发送请求1 | | 得到响应 | 得到响应1 | | 关闭连接 | 发送请求2 | | 创建连接(TCP/IP) | 得到响应2 | | 发送请求 | ………. | | 得到响应 | ………. | | 关闭连接 | 连接超时或者手动关闭连接 |

(2)http协议相关的说明

  • http协议概念是客户端浏览器和服务器一种一问一答的规则,那么必须要有问有答,而且要先问后答。但是我们使用