黑马程序员 Apache Tomcat 完整小白搭建教程,内含 MacOS Web 项目搭建流程,阿伟看了都说真大、真细、真全!!!

Apache Tomcat

本篇文章将为您介绍一款轻量级、免费、开源的服务器 tomcat,学完本篇文章相信你可以很轻松的,在本地搭建一个服务器,来测试你所学习的 JavaWeb 技术

代码仓库

代码仓库无疑是我的教学里最大的特色,它的功能十分强大。它蕴含了本篇文章全部的代码,项目结构,特别注意事项

  • 代码仓库的定位类似 Tomcat 的工具类或者 API 文档
  • 将分散的代码,注意事项聚合到一个单独的文件里,显然是一个很高效的创新,毫无疑问它对待初学者十分友好,清晰的项目结构,详尽的注解都极大的提高了效率
  • 同时它还帮助那些只是来查找关键代码的朋友们最大程度的提高了查找效率。比如依赖、核心配置文件,这些我们完全不会背下来的内容,在使用时,不再需要不断下滑寻找再复制,所有你需要的东西就明明白白的躺在那里——代码仓库
  • 点开下面的链接吧,保证不会让你失望。

代码仓库

HTTP 数据格式

首先我们来学习一下HTTP 的数据格式。http 协议规定了浏览器和服务器之间数据传输的规则,要学习服务器,当然先要学习服务器所处理的数据格式

HTTP 特点

  1. 基于 TCP 协议,面向连接,安全
  2. 基于请求-响应模型,一次请求对应一次响应
  3. HTTP 协议是无状态的协议,对于事务处理没有记忆功能,每次请求-响应都是独立的
    • 缺点:多次请求间不能共享数据
    • 优点:速度快

请求数据格式

前端向服务器发送数据的过程被我们称为请求。这些数据通常是用于服务器的逻辑处理。前端向服务器提交数据有两种常用方式 GET 和 POST 。接下来我们来看看这两种方式的数据格式。

在这里插入图片描述

以上两幅图片给出了 get 和 post 两种提交方法的数据格式,两种方法的数据均被 HTTP 协议分成了三部分,我们先来看看相同之处

  1. 请求行:请求数据的第一行。其中 GET 表示请求的方式,/ 表示请求资源路径,HTTP/1.1表示协议版本
  2. 请求头:第二行开始,格式为键值对形式

在这里插入图片描述

  1. 请求体:位于数据的最后部分。GET 方法的请求体部分没有数据。POST 方法的请求体用于存放请求参数

我们再来看看 GET 和 POST 两种方法的区别

  • get 请求参数在请求行中,没有请求体
  • post 请求参数子请求体中
  • get 参数大小有限制, post 没有

响应数据格式

服务器接受到前端传来的数据,再进行逻辑处理后,往往会将部分结果传递给前端,而将数据传递给前端的过程就叫做响应

响应数据分为三部分

在这里插入图片描述

和请求数据格式很像对吧,他们都遵守 HTTP 协议的格式,用请求头来区分具体的不同。对于前后端不分离的项目,前端代码通常封装在响应体中,交给浏览器解析,然后展示页面

  1. 响应行:响应数据的第一行。HTTP/1.1 表示协议版本,200 表示响应状态码,OK 表示状态码描述
  2. 响应头:第二行开始,格式为 键值对
  3. 响应体:最后一部分,存放响应数据

我们来学习一下常见的响应状态码,了解了响应状态码,服务器的维护也会更加快捷

在这里插入图片描述

常见的响应状态码

状态码英文描述解释
200OK客户端请求成功,即处理成功,这是我们最想看到的状态码
302Found指示所请求的资源已移动到由Location响应头给定的 URL,浏览器会自动重新访问到这个页面
304Not Modified告诉客户端,你请求的资源至上次取得后,服务端并未更改,你直接用你本地缓存吧。隐式重定向
400Bad Request客户端请求有语法错误,不能被服务器所理解
403Forbidden服务器收到请求,但是拒绝提供服务,比如:没有权限访问相关资源
404Not Found请求资源不存在,一般是URL输入有误,或者网站资源被删除了
428Precondition Required服务器要求有条件的请求,告诉客户端要想访问该资源,必须携带特定的请求头
429Too Many Requests太多请求,可以限制客户端请求某个资源的数量,配合 Retry-After(多长时间后可以请求)响应头一起使用
431 Request Header Fields Too Large请求头太大,服务器不愿意处理请求,因为它的头部字段太大。请求可以在减少请求头域的大小后重新提交。
405Method Not Allowed请求方式有误,比如应该用GET请求方式的资源,用了POST
500Internal Server Error服务器发生不可预期的错误。服务器出异常了,赶紧看日志去吧
503Service Unavailable服务器尚未准备好处理请求,服务器刚刚启动,还未初始化好
511Network Authentication Required客户端需要进行身份验证才能获得网络访问权限
Tomcat 概述

学完了 HTTP 数据格式的理论基础,是不是感觉把有用的数据封装成那样的格式很麻烦?没关系,我们接下来学的 tomcat 服务器就是用来帮助我们按照规定格式封装数据的,它帮助我们完成了几乎全部的封装的步骤

Web 服务器

  • 它是一个应用程序,对 HTTP 协议的操作进行封装,使得程序员不必直接对协议进行操作,让 Web 开发更加便捷。主要功能是提供网上信息浏览服务

Tomcat

  • Tomcat 是 Apache 软件基金会一个核心项目,是一个开源免费的轻量级 Web 服务器,支持 Servlet/JSP 少量 JavaEE 规范
  • Tomcat 也被称为 Web 容器、Servlet 容器。Servlet 需要依赖 Tomcat 才能运行

下载链接

https://tomcat.apache.org/download-80.cgi

在这里插入图片描述

本文使用的是 8.5 版本
如果使用的是 windows 环境,下载第三行第四行的 zip 文件
如果使用的是 linux 或者 MacOS 下载 tar.gz 文件

配置

安装好 tomcat 点击 bin 目录下的 startup 文件便可以开启服务器,windows 环境使用 .bat 后缀,linux 使用 .sh 后缀
点击同目录下的 shutdown 文件即可关闭服务器

让我们来尝试一下本地服务器吧

  1. 开启服务器

在这里插入图片描述

如果看到 tomcat started 的提示证明服务器开启成功

  1. 打开浏览器输入 localhost:8080 回车

在这里插入图片描述

若出现此界面,证明你的服务器可以正常工作啦!此界面是 tomcat 的内置文件,默认配置下访问 8080 端口,就会出现此界面

  1. 关闭服务器
  • 每次使用完之后,别忘了关闭服务区哦,否则再次开启服务器时,就会出现端口占用问题
Maven Web 项目

相信你已经体验过了第一次开启本地服务器的激动,接下来我们来学习如何把 tomcat 加入到 idea 中来管理使用,不过在加入 tomcat 之前,我们需要先学习一下如何用 idea 创建一个 web 项目

  1. 使用模版创建 web 项目,这里是 MacOS 系统下的 Web 项目创建流程

在这里插入图片描述

Archetype 叫做骨架,我们使用 Maven 提供的项目骨架,创建一个 web 项目,需要注意 JDK 需要选择 Java8,tomcat 在使用最新版本的 JDK 会发生编译错误

在这里插入图片描述

创建的项目结构如上图所示,会发现目前项目只有名为 webapp 的项目文件夹用于存放前端文件,并没有相应的 java 文件夹用来存放用于逻辑处理的 java 文件。这就需要我们自己创建。

  1. 创建 java 文件夹

在这里插入图片描述
在这里插入图片描述

选择 New Directory 之后,idea 会为我们推荐 Java 文件夹,单机即可。创建完毕的项目结构如下

在这里插入图片描述

现在一个标准的 Maven Web 项目就创建好了

IDEA 中使用 Tomcat

终于我们来到了最激动人心的最后一个步骤——用 idea 管理tomcat

Maven 为我们提供了 tomcat 插件,我们只需要将下面的坐标复制到 pom.xml 配置文件里即可。

<!--要注意插件与依赖不同,此段坐标应复制在依赖坐标的下面的 build 坐标中-->
    <plugins>
      <plugin>
        <!--这里是插件信息,第一次使用 maven 会从中央仓库下载-->
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <!-- 设置服务器的端口信息,默认是8080-->
          <port>8080</port>
          <!-- 设置虚拟路径 -->
          <path>/</path>
        </configuration>
      </plugin>
    </plugins>

  • 端口:8080 为 tomcat 的默认端口,访问需要使用 localhost:8080,若设置端口为 80,直接用 localhost 访问即可
  • 虚拟路径:浏览器访问文件的路径,若不配置标签访问 webapp 下的 hello.html 需要访问 localhost:8080/webdemo/hello.html,即需要加上项目名称
  • 若配置了端口 80 ,虚拟地址 / 。再想要访问hello.html ,只需要访问 localhost/hello.html

我们来检测检测一下是否配置成功了吧

  1. 首先配置端口和虚拟目录

在这里插入图片描述

  1. 在 webapp 目录下创建 hello.html 文件
<html>
<title>hello</title>
<body>
hello,world
</body>
</html>

  1. 启动服务器(右键->Run Maven -> tomcat7:run)

在这里插入图片描述

  • 开启服务器之前,一定要关闭之前开启的服务器,否则报错端口占用异常
  • 一旦出现端口占位异常 Initializing ProtocolHandler,关闭服务器将端口修改成未被占用的端口即可

4.访问服务器,打开浏览器访问 localhost/hello.html(localhost:端口号/文件路径/文件名)

在这里插入图片描述

  • 要注意按照实际改变网址,此网址是端口设置为80,虚拟路径设置为 / 时的网址

出现了我们刚才编写的 html 页面后,就代表访问成功啦

使用之后别忘记关闭服务器哦!

Tomcat 的入门就到这里结束啦,感觉好像大概需要大家的点赞鼓励一下呢,不要吝啬哦!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值