JavaWeb
1.基本概念
1,1前言
web开发:
-
web,网页的意思,www.baidu.com
-
静态web
- html,css
- 提供给别人看得数据始终不会发生变化!
-
动态web
- 淘宝,几乎所有网站
- 提供给别人看得数据始终会发生变化,每个人在不同时间地点看到信息各不相同
- 技术栈:Servlet/JSP,ASP,PHP
在java中,动态web资源开发的技术统称为javaweb
1.2,web应用程序
web应用程序:可以提供浏览器访问的程序
-
a.html ,b.html…多个web资源,这些web资源可以被外界访问,对外界提供服务
-
你们访问到的任何一个页面或者资源,都存在这个世界的某个计算机上
-
URL
-
这些统一的web资源会放在同一个文件夹下,web应用程序–》tomcat:服务器
-
一个web应用由多部分组成
- html,css,js
- jsp,servlet
- java程序
- jar包
- 配置文件(Properties)
web应用程序编写完毕后,若想提供给外界访问:需要一个统一的服务器统一管理;
1,3静态web
- .htm,.html 这些都是网页的的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取。通络;
- 静态web存在的缺点
- web页面无法动态更新,所有用户看到的都是同一页面
- 轮播图,点击特效;都是伪动态
- JavaScript可以实现伪动态
- 他无法和数据库交互(数据无法持久化)
- web页面无法动态更新,所有用户看到的都是同一页面
1.4动态web
页面会动态展示:“Web的 页面展示的效果因人而异”
缺点
- 假如服务器的动态web资源出现了错误,我们需要重新编写我们的***后台程序***,重新发布
- 停机维护
优先
- web页面可以动态更新,所有用户看到的都是不是同一个页面
- 他可以和数据库交互(数据持久化:注册,登录,商品信息,用户信息)
2.web服务器
2.1技术详解(废话)
ASP
- 微软:国内最早流行就是ASP;
- 在HTML中嵌入了VB的脚本,ASP+COM;
- 在ASP开发中,基本一个页面都有几千行的代码,极其紊乱
- 维护成本高
JSP PHP。。。。。。。。。。。。。。
JSP/Servelt:
B/S:浏览器和服务器
C/S:客户端和服务器
- sun公司直主推的B/S
- 基于java语言
- 可以承载三高带来的问题(高并发高可用高性能)
2.2 web服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应:
Tomcat
面向百度编程;
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,它是最佳的选择
而Tomcat 实际上运行JSP 页面和Servlet,目前Tomcat最新版本为10.0.5**。**
…
工作3-5年后,可以尝试手写服务器;
3 Tomcat
官网 :https://tomcat.apache.org/
- 高难度面试题
- 1.输入一个域名;
- 2.检查本机的C:\Windows\System32\drivers\etc\hosts
- 1.有:直接返回对应的IP地址,这个地址中,有我们需要的访问的web程序,可以直接访问
- 2.没有,去DNS服务器找,找到的话就返回,找不到就返回找不到
- 3
4.HTTP
4.1什么是HTTP
超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
- 文本:html,字符串,~…
- 超文本:图片,音乐,视频,定位,地图。。。。
- 80
HTTPS:安全的security
- 443
4.2 请求方式
请求方式:
- get;请求能过携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
- post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效
4.3 消息头
Accept:告诉浏览器,它所支持的数据类型
Accept- Encoding:支持哪种编码格式 GBK UTF-8,GB2312,ISO8859-1
Accept- Language:告诉浏览器,它的语言环境
Cache- Control:缓存控制
Connectlon:告诉浏览器,请求完成是断开还是保持连接
HOST:主机...
4.4响应状态码
- 服务单-响应-客户端
200:请求响应成功 200
3XX:;请求重定向
- 重定向:你重新给我到新位置去
4XX:找不到资源 404
- 资源不存在
5XX:服务器代码错误 500 502:网关错误
常见面试题
- 当你的浏览器中地址拦输入地址并回车的一瞬间的页面能够展示回来,经历了什么?
- 1.作为客户端,浏览器接收到地址之后,首先会到windows系统文件hosts中查找是否有需要劫持的ip地址,若没有则需要询问DNS域名解析服务器该域名对应的ip地址。(DNS缓存)
浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存 - 2.获取到正确的ip地址后,客户端会与服务器建立TCP连接(三次握手),(网络层、数据链路层、物理层)
- 3.客户端向服务端发送请求,包含请求行、请求头、请求正文。多种请求方式(GET,POST、PUT等)
- 4.服务端处理请求,并返回响应,包含状态码、响应头、响应体
- 1.作为客户端,浏览器接收到地址之后,首先会到windows系统文件hosts中查找是否有需要劫持的ip地址,若没有则需要询问DNS域名解析服务器该域名对应的ip地址。(DNS缓存)
作为客户端,浏览器接收到地址之后,首先会到windows系统文件hosts中查找是否有需要劫持的ip地址,若没有则需要询问DNS域名解析服务器该域名对应的ip地址。(DNS缓存)
浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存
获取到正确的ip地址后,客户端会与服务器建立TCP连接(三次握手),(网络层、数据链路层、物理层)
客户端向服务端发送请求,包含请求行、请求头、请求正文。多种请求方式(GET,POST、PUT等)
服务端处理请求,并返回响应,包含状态码、响应头、响应体
浏览器收到响应,解析渲染页面,展示出来
断开连接(http1.0短连接,http1.1长连接)
Maven项目
5.1
***Maven***的核心思想:约定大于配置
- 有约束,不要去违反
***Maven***官网:https://maven.apache.org/download.cgi
5.2配置环境变量
5.3阿里云镜像
阿里云镜像
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
5.4本地仓库
本地仓库:localRepository
<localRepository>D:\Program Files\apache-maven-3.6.3-bin\apache-maven-3.6.3\maven-repo</localRepository>
5.5Maven
链图片转存中…(img-DI4e2jGI-1624950181086)]
<localRepository>D:\Program Files\apache-maven-3.6.3-bin\apache-maven-3.6.3\maven-repo</localRepository>