JavaWeb-Day01
文章目录
- 1. 基本概念
- 1.1 前言
- 1.2 web应用程序
- 1.3 静态web
- 1.4 动态web
- 2. web服务器
- 2.1 技术介绍
- 2.2 常见的web服务器
- 3. Tomcat![在这里插入图片描述](https://img-blog.csdnimg.cn/41006bb1ae6745bfa71bbbf926ebf6ac.png)
- 3.3 配置
- 3.4 发布一个web网站
- 4.Http
- 4.1 什么是Http?
- 4.2 两个时代
- 4.3 Http请求
- 4.3.1 请求行
- 4.3.2 请求头
- 4.3.4 请求体
- 4.4 Http响应
- 4.4.1 响应头
- 4.4.2 响应体
- 4.4.3 响应状态码
1. 基本概念
1.1 前言
web开发:
- web 网页的意思
- 静态web
- html,css
- 提供给人看的数据不会发生变化
- 动态web
- 几乎所有网站,例如淘宝,京东等等
- 提供给人看的数据会发生变化,每个人在不同的时刻看到的消息尽不相同!
- 技术栈:Servlet/JSP,ASP,PHP
那么,在java中,动态web资源的开发技术就统称为javaWeb
1.2 web应用程序
web应用程序:可以提供给浏览器访问的程序
- 多个html文件,即这些多个web资源可以被外界访问,对外界提供服务
- 任何一个页面或者资源,都存在与某一个角落的计算机上(服务器)
- URL:统一资源定位符
- 这个统一的web资源会放在统一个文件夹下,web应用程序——> Tomcat:服务器
- 一个web应用由多部分组成(静态web,动态web)
- HTML,css,js
- jsp,servlet
- java程序
- jar包
- 配置文件(Properties)
web应用程序编写完毕后,若想提供给外界访问,需要一个服务器来统一管理!
1.3 静态web
- 静态web存在的缺点
- 页面无法动态更新,所有用户看到的都是同一个页面
- 轮播图,点击特效:伪动态
- JavaScript(在实际开发中用的最多)
- VBScript (少)
- 它无法和数据库交互(即:数据就无法持久化,用户无法交互)
- 页面无法动态更新,所有用户看到的都是同一个页面
1.4 动态web
页面会动态展示,展示的效果因人而异!
示意图(与数据库交互):
缺点:
- 加入服务器的动态web资源出现了错误后,我们需要重新编写我们的后台程序,重新发布
- 停机维护
优点:
- web页面可以动态更新,所有用户看到的都不是同一个页面
- 它可以与数据库交互
2. web服务器
2.1 技术介绍
ASP
- 微软:国内早期流行的就是ASP
- 在HTML中嵌入了VB的脚本,ASP+COM;
- 在开发和维护中不容易,维护成本高!
- c#
- IIS
PHP:
- 开发速度很快,功能很强大,代码很简单
- 无法承载大访问量的情况(局限性)
JSP/servlet:
B/S: 浏览器和服务器
**C/S:**客户端和服务器
- Sun公司主推的B/S架构
- 基于java语言的
- 可以承载:高并发、高可用、高性能 (三高)带来的影响
- 语法像ASP,写ASP的人容易适应
2.2 常见的web服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应的信息
IIs
微软的,ASP,windows中自带的
Tomcat介绍:
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。Tomcat最新版本为10.0.14
(工作3-5年可以尝试手写一个Tomcat服务器)
下载Tomcat:
- 安装
- 了解配置文件及其目录结构
- 这个东西的作用是什么
3. Tomcat
官网:https://tomcat.apache.org/
3.2 Tomcat的启动和配置
启动,关闭Tomcat
访问测试:http://localhost:8080/
默认是8080端口,默认主机localhost ->127.0.0.1
当然,如果想要修改,可以找到这个地方:
修改默认的启动端口号:
<Connector port="8080(例如:改为8081)" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />
可以配置主机的名称:
<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true">
- 默认的主机名为:localhost->127.0.0.1
- 默认望着你应用存放的位置为:webapps
面试题:
网站是如何进行访问的?
- 输入一个域名;敲击回车
- 检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名映射
- 有:直接返回对应的ip地址,这个地址中有我们需要访问的web程序,直接访问
- 没有:去DNS服务器找,找到的话就返回,找不到就返回找不到!
示意图:
3.3 配置
可以配置一下环境变量!(可选):说白了,环境变量就是让系统知道你的软件路径在哪,以后你就可以通过命令行直接启动软件了
3.4 发布一个web网站
- 打开tomcat解压文件夹下的webapps目录
- 进入ROOT目录,删除其他的文件,保留WEB-INF文件夹,复制下来,返回上一级目录
- 将个人的项目文件夹粘贴到该目录
- 将WEB-INF文件夹粘贴到个人项目文件夹下
访问:http://localhost:8080/H5FinalExam/
这里我放了一个期末作业的项目,访问后的效果:
网站发布流程:
- 将自己写的网站的项目,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了
详细流程:
1.首先有一台公网ip的服务器(Linux系统)->
2.注册一个域名->
3.在该服务器部署Tomcat服务->
4.将个人的web项目放到Tomcat中指定的web应用的文件夹(webapps)下
5.访问:(默认端口是8080,在linux下也可以改的) http://localhost:8080/H5FinalExam/
网站应该有的结构:
--webapps:Tomcat服务器的web目录-ROOT-H5FinalExam:网站的目录名(即:web项目的名字)- WEB-INF文件夹- classes :java程序- lib: web应用所依赖的jar包- web.xml :网站的配置文件-index.html: 默认的首页-static-css-style.css-js-img
4.Http
4.1 什么是Http?
HTTP
(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上
- 文本
- 超文本:所谓“超文本”,就是“超越了普通文本的文本”。在HTTP诞生之初,受时代的限制(当时网络上绝大多数的资源都是纯文本),结构简单,传输的都是简单的字符文字,即纯文本。“超文本”是文字、图片、音频和视频等的总称。
- 默认80端口
Https:安全的
- 端口443
- HTTP的三点注意事项:
注意:
1 无连接:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
2 媒体独立:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型
3 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大
工作原理:
HTTP工作原理:
HTTP协议
工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求,Web服务器根据接收到的请求后,向客户端发送响应信息HTTP默认端口号为80,但是你也可以改为8080或者其他端口。
4.2 两个时代
http 1.0
- HTTP/1.0 客户端可以与web服务器连接后,只能获得一个web资源,断开连接
http 2.0
- HTTP/1.1
4.3 Http请求
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。
4.3.1 请求行
- 请求行中的请求方式
- GET:请求携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但是高效
- POST :请求携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但是不高效
- HEAD (了解)
- HTTP1.1 新增了六种请求方法(了解):OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
具体方法展示:
方法 | 描述 |
---|---|
GET | 请求指定的页面信息,并返回实体主体。 |
HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容 |
DELETE | 请求服务器删除指定的页面 |
CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器 |
OPTIONS | 允许客户端查看服务器的性能 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断 |
PATCH | 是对 PUT 方法的补充,用来对已知资源进行局部更新 |
4.3.2 请求头
Bdpagetype: 3
Bdqid: 0x8e67cbc90008b598
Cache-Control: private
Ckpacknum: 2
Ckrndstr: 90008b598
Connection: keep-alive
Content-Encoding: br
Content-Type: text/html;charset=utf-8
Date: Thu, 18 Aug 2022 10:22:14 GMT
Server: BWS/1.1
Set-Cookie: delPer=1; path=/; domain=.baidu.com
Set-Cookie: BD_CK_SAM=1;path=/
Set-Cookie: PSINO=7; domain=.baidu.com; path=/
Set-Cookie: BDSVRTM=28; path=/
Set-Cookie: H_PS_PSSID=26350; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
Traceid: 1660818134066391066610261394340136400280
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Frame-Options: sameorigin
X-Ua-Compatible: IE=Edge,chrome=1
4.3.4 请求体
4.4 Http响应
4.4.1 响应头
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0ecdJO7U-1665038196255)(…/…/TYpOra/javaweb/image-20220818183539742.png)]
4.4.2 响应体
4.4.3 响应状态码
- 2xx - 请求成功
- 3xx - 资源(网页等)被永久转移到其它URL (重定向)
- 4xx - 请求的资源(网页等)不存在 404
- 5xx - 内部服务器错误
JavaWeb-Day01相关推荐
- JavaWeb:HTML
<html><head></head><title>这是我的第一个网页</title><meta charaset="UTF ...
- 黑马程序员就业班第一天的总结以及自己的看法
就业班第一天的内容:html 个人感觉东西蛮多的,,要记下来的内容也蛮多的,总结的内容大概如下:HTML 1.html的简介 (1)什么是html?HyperText Mark-up Lang ...
- HTML+CSS+JavaScript速成
文章目录 HTML/CSS/JavaScript HTML Html HyperText Markup Language内容 font标签 font-01 font-011 图象 image-01 表 ...
- HTML + CSS + JavaScript速成
文章目录 HTML/CSS/JavaScript HTML Html HyperText Markup Language内容 font标签 font-01 font-011 图象 image-01 表 ...
- java控制分屏_java实现arcgis地图分屏(双图)
java实现arcgis地图分屏(双图) java实现arcgis地图分屏(双图) 本博文采用Java语言,利用arcgis api for javascript 4.16地图服务,实现地图分屏,直接 ...
- 01__HTML语言
HTML语言 1. html的简介 (1)什么是html?HyperText Mark-up Language ,超文本标记型语言,是网页的语言. * 超文本超文本:超出文本的范畴 * 标记:理解为标 ...
- JavaWeb图书管理系统day01
视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ 提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...
- 崔希凡javaWeb笔记day01~day03(2016年5月20日20:33:54)
为了提高效率,我借助有道云笔记将我的笔记转成了pdf文件,更加方便查看 链接:http://pan.baidu.com/s/1jIEVfMY 密码:7pzl 转载于:https://www.cnblo ...
- JavaWeb图书管理系统day03
视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ 提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...
- JavaWeb图书管理系统day02
视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ 提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...
最新文章
- Android状态栏颜色修改
- excel排名_WPS-Excel表格实用技巧——排位排名函数(RANK函数)的使用
- 干货 | 产品经理要了解的技术类知识
- [Flexbox] Using order to rearrange flexbox children
- 图像分割中的深度学习:U-Net 体系结构
- 力扣20.有效的括号
- STM8单片机ADC单次采样模式
- log4j2 配置详解及使用范例
- 数据集查找神器!100个大型机器学习数据集都汇总在这了 | 资源
- 从“为什么不能直接打开PDF文件”说到“脚本***”
- windows核心编程第二章阅读
- jumserver 官方文档和
- 同步带周长计算公式_同步带选型计算方法
- MySQL数据库编程(C++)介绍
- JAVA音乐社交平台设计计算机毕业设计Mybatis+系统+数据库+调试部署
- 解决git:fatal:Unable to create”…/.git/index.lock” 的错误
- 全覆盖路径规划--Morse函数临界点的地图精确单元分解
- jupyter自动补齐插件安装后没有Nbextensions 不显示jupyter lab自动补全插件jupyter lsp的安装与使用
- 3GQQ幻想西游升级最快的方法(集)
- 华为mate30如何开启USB网络共享