JavaWeb——Tomcat基础认识

JavaWeb概念

Java Web,是用Java技术来解决相关Web互联网领域的技术栈,Web包括:web服务端和web客户端两部分。Java在客户端的应用有Java Applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如ServletJSP、第三方框架等等。Java技术对Web领域的发展注入了强大的动力。

HTTP协议

什么是HTTP?

超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当MIME,全称为“Multipurpose Internet Mail Extensions”,比较确切的中文名称为“通用互联网邮件扩充”。MIME类型的格式是大类型/小类型,并与某一种文件的扩展名相对应,例如:超文本标记语言文本 .html,.html text/html;普通文本 .txt text/plain;RTF文本 .rtf application/rtf)

简单来说就是:http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。例如:在浏览器点击一个链接,浏览器就为我打开这个链接的网页。原理:当在浏览器中点击这个链接的时候,浏览器会向服务器发送一段文本(文本可以是html、字符串、…;超文本就是图片,音乐,视频,定位,地图等),告诉服务器请求打开的是哪一个网页。服务器收到请求后,就返回一段文本给浏览器,浏览器会将该文本解析,然后显示出来。这段「文本」就是遵循HTTP协议规范的,且HTTP协议中的数据又叫报文


什么是HTTPS?

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPSHTTP 的基础下加入SSLHTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSLHTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTPTCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面

HTTP发展历史

http/1.0:客户端可以与web服务器连接后,只能获得一个web资源,然后断开连接

http/1.1:客户端可以与web服务器连接后,只能获得多个web资源。

HTTP特性

什么是请求?

请求是指客户端给服务器发送数据(request),请求一般又分为GET请求和POST请求

什么是响应?

响应是指服务器给客户端回传数据(response

注:请求和响应是成对出现的,有请求就有响应

HTTP请求

浏览器向服务器请求某个web资源时,一般也是浏览器向服务器发送了一个HTTP请求

一个完整HTTP请求应该包含三个部分:`请求行、请求头、请求体(其实这里其实可以分为四个部分,空白行我们忽略不计)

空间划分:一般分为请求行——请求头——空白行(表隔离,无任何作用)——请求体(一般Request MethodGET的话就有请求体,POST的话没有请求体)

  • 请求行:描述客户端的请求方式(GETPOST)、请求的资源路径,以及使用的HTTP协议版本号

    • GET / HTTP/1.1	
      Host: www.baidu.com
      
    • GET请求:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高校,没有请求体。是GET请求的有:form标签method="get"a标签link标签引入cssScript标签引入js文件img标签引入图片iframe引入html页面;或者是在浏览器输入一个地址然后回车也属于GET请求

    • POST请求:请求能够携带的参数没有限制,大小有限制,不会在浏览器的URL地址栏显示数据内容,安全,有请求体

  • 请求头:请求参数信息

    • 请求头的格式一般都是一个key对应一个value,或者一个key对应多个value的情况

    • 【Request Headers】
      Accept(告诉浏览器,客户端可以接收的数据类型):
      text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
      Accept-Encoding: gzip, deflate, br(支持哪种编码格式) GBK UTF-8 GB2312 ISO8859-1 (告诉服务器,客户端可以接收的数据编码格式)
      Accept-Language: zh-CN,zh;q=0.9	(告诉服务器,客户端可以接收的语言类型)
      Cache-Control: no-cache	(缓存控制)
      Connection: keep-alive	(告诉服务器回传数据不要马上关闭,保持一小段时间的连接)
      Cookie:
      Host: www.baidu.com (主机)
      Refresh:告诉客户端,多久刷新一次
      Location:让网页重新定位
      User-Agent:获得客户端浏览器的信息
      
  • 空白行:没有任何内容,起到隔离作用

  • 请求体:请求参数信息,只要POST请求方式才有请求体,而且请求体是POST方式请求参数

HTTP响应

一个HTTP响应代表着服务器向浏览器回送数据

HTTP响应跟请求差不多,一般分为状态行——响应头——空白行(表隔离,无任何作用)——响应体(一般Request MethodGET的话就有请求体,POST的话没有请求体)

  • 状态行:响应的协议和版本号、响应状态码(服务器对请求处理的结果情况,常见以下状态码)响应状态描述符

    • HTTP/1.1 200 OK
      
    • 响应状态码常出现的几种

      200:表示请求成功

      3**:请求重定向(重新向:重新到我指定给你新位置去)

      404:表示请求服务器已经收到了,但是你要的数据不存在(本地和DNS找不到资源;请求地址不存在或者错误)

      5**:服务器内部错误(代码错误)500502:表示网关错误

      https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status(具体看这篇文章)

  • 响应头

    • 描述服务器的基本信息,以及数据的描述

    • 【Response Headers】
      Cache-Control: private	缓存控制
      Connection: keep-alive	服务器告知浏览器连接方式
      Content-Encoding: gzip	服务器告知浏览器数据压缩的格式
      Content-Type: text/html;charset=utf-8	指定浏览器采用对应编译器对响应体二进制数据进行解析(表示响应体的数据类型)
      Server: BWS/1.1			表示服务器的信息
      
    • 响应头的格式也是一个key对应一个value,或者一个key对应多个value的情况

  • 空白行:没有任何内容,起到隔离作用

  • 响应体:响应体可能是被访问静态资源文件内容、被访问的静态资源文件命令或者被访问的动态资源文件运行结果(回传给客户端的数据)

Web资源分类

web资源又分为 静态资源动态资源两种

静态Web

静态web有html、css、js、图片等

image-20210418095957252

静态Web存在的缺点

  • 无法动态的更新页面、所有的用户浏览到的都是同一个页面

  • 只有伪动态,例如轮播图(靠jsVBScript

  • 它无法和数据库交互(数据无法持久化,用户也没办法交互)

动态Web

动态web有jsp页面、servlet程序

image-20210418101233526

动态Web存在的缺点

  • 加入服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,然后重新发布

  • 停机维护

Web服务器

Web服务器有很多,这里只说Tomcat服务器(因为免费且大部分企业在使用)服务器是一种被动操作,用来处理一些被动请求,接受用户请求,返回响应

Tomcat

Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。适合初学者。Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。

Tomcat各版本、jdk和servlet各版本对应关系

Servlet SpecJSP SpecEL SpecWebSocket SpecAuthentication (JASIC) SpecApache Tomcat VersionLatest Released VersionSupported Java Versions
5.03.04.02.02.010.0.x10.0.58 and later
4.02.33.01.11.19.0.x9.0.458 and later
3.12.33.01.11.18.5.x8.5.657 and later
3.12.33.01.1N/A8.0.x (superseded)8.0.53 (superseded)7 and later
3.02.22.21.1N/A7.0.x7.0.1096 and later (7 and later for WebSocket)
2.52.12.1N/AN/A6.0.x (archived)6.0.53 (archived)5 and later
2.42.0N/AN/AN/A5.5.x (archived)5.5.36 (archived)1.4 and later
2.31.2N/AN/AN/A4.1.x (archived)4.1.40 (archived)1.3 and later
2.21.1N/AN/AN/A3.3.x (archived)3.3.2 (archived)1.1 and later

Tomcat目录介绍

安装解压

下载地址:https://tomcat.apache.org/

目录介绍

解压后打开目录(这里我把Tomcat服务器安装在D:\java jdk\apache-tomcat-9.0.45

image-20210419204451104

temp:用来存放Tomcat运行时产生的临时数据。

work:是Tomcat工作时的目录,用来存放Tomcat运行时jsp翻译为Servlet的源码(其实jsp本质上就是Servlet)和Session钝化(钝化就是序列化写在磁盘上)的目录(学Servlet之前,首先我们要学学TomcatTomcat是一个Web服务器(同时也是Servlet容器),通过它我们可以很方便地接收和返回到请求(如果不用Tomcat,那我们需要自己写Socket来接收和返回请求))

启动Tomcat

首先去tomcat的bin目录启动或者关闭脚本,或者后面直接通过idea配置tomcat

然后打开浏览器访问(如果启动失败就是jdk环境没有配置好)

打开浏览器输入地址:http:localhost:8080,或者把localhost换成127.0.0.1要么本机真实IP

或者通过命令行访问

找到Tomcatbin文件夹,在上面路径输入cmd,然后输入命令startup.sh

修改Tomcat的端口号

  • MySQL默认端口号是3306
  • Tomcat默认的端口号是8080
  • http默认的端口号是80
  • https默认的端口号是443

找到解压目录D:\java jdk\apache-tomcat-9.0.45\conf\server.xml,里面可以修改端口号(port属性就是你需要的端口号,修改完端口号,一定要重启Tomcat服务器才能生效)

<Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

可以配置主机的名称

默认的主机名为:localhost(也就是127.0.0.1)默认网站应用存放的位置为:webapps(一般不要去修改)

 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

下面这篇文章是整合IDEA+Maven配置Tomcat服务器(包括目录详解)文章,这里不细说

https://blog.csdn.net/qq_47256069/article/details/116140082

部署一个web网站

webapps目录

默认网站应用存放的位置为:webapps。一个目录代表一个应用:我们可以把自己的网站部署到这上面,拷贝webapp目录下的一个ROOT目录,然后修改成自己网站的名字(里面其他东西都可以删了,留个web.xml文件就行)

image-20210419202306529

启动tomcat后,输入下面的地址,默认访问的工程是ROOT目录下的index.jsp文件

http://localhost:8080/(没有部署工程名的时候,默认是ROOT工程)

http://localhost:8080/工程名(如果输入的地址没有资源名的时候,默认访问的是index.html页面)

上面我们说了,Tomcat默认存放网站的位置是webapps,然后将自己的网站放在服务器(Tomcat)中指定的webapps目录下的应用,然后启动Tomcat后,在浏览器输入http://localhost:8080/工程名/资源名

补充

部署网站后是如何进行访问的?(面试题)

输入一个域名;然后回车(也就是回车后做的事情)首先会检查本地的C:\Windows\System32\drivers\etc\hosts配置文件有没有映射(去hosts文件增加主机的域名映射);有的话直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问。没有的话去DNS服务器找

image-20210419223249491

Tomcat服务器第二种部署web网站方式

D:\java jdk\apache-tomcat-9.0.45\conf\Catalina\localhost(在这里面写配置文件,一个xml代表一个项目)

在你们对应的Tomcat目录下找(我的是上面这个路径)然后创建一个xml文件,往xml文件写下面的内容(项目名是xml文件名,注意字符集问题),然后启动Tomcat服务器后,在浏览器输入对应的路径即可访问!

<!--
输入以下内容
    Context表示一个工程的上下文
    path表示工程的访问路径(也就是你写的配置文件的名字)
    docBase表示项目目录路径

	然后注意字符集问题
    最后启动tomcat
-->
<Context path="项目名(外面xml文件名字)" docBase="项目路径" />
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值