尚硅谷--JavaWeb篇

参考内容

参考视频:https://www.bilibili.com/video/BV1Y7411K7zz?p=325&vd_source=510ec700814c4e5dc4c4fda8f06c10e8

代码地址:https://gitee.com/empirefree/SpringBoot-summarize/tree/尚硅谷-JavaWeb篇/

http协议: https://mp.weixin.qq.com/s/BdYOumBAXEXM3LOrDOSftw

csdn csdn csdn csdn csdn


🔥1. 基本内容

1.1.基本概念

1.1.0 JavaEE/JavaSE

​ JavaEE:指的是一种规范,包含了目前tomcat,servlet等等,也包含了jdk(javaSE就包含了jdk里面的各种包)

1.1.1 JavaWeb

​ Javaweb 是指java语言编写的可通过浏览器访问的程序总称

1.1.2 Tomcat

​ tomcat是轻量级的Javaweb容器支持对jsp,servlet这种动态资源的加载,是市面上流行的Javaweb服务器。

1.1.3 Servlet
1.1.3.1 基本概念

​ Servlet是JavaEE规范之一,规范也是接口,也是Javaweb三大组件之一。

​ JavaWeb三大组件:servlet,filter过滤器,listener监听器,是服务器上的java程序,负责接收与响应客户端请求

​ 各种不同版本支持的环境也有所不同tomcat -- servelet -- javaEE -- jdk环境

1.1.3.2 生命周期

​ 整体伴随项目的启动和结束

  1. 执行Servlet构造器方法,init初始化方法
  2. 每次都会调用Service方法
  3. 执行Destory销毁方法
1.1.3.3 HttpServlet

​ 实际开发中,一般通过继承httpServlet来实现Servlet接口

1.1.3.4 ServletConfig

​ Servlet配置信息类,可以获取ServletContext对象

1.1.3.4 ServletContext

​ ServletContext是接口,表示上下文对象,一个web工程只有一个ServletContext对象实例,也是一个域对象(类似于Map对象)

1.1.3.5 HttpServletRequest/response

​ HttpServletRequest:tomcat接受到响应传到Service的doget,dopost方法中,后续就可以HttpServletRequest使用入参数据。

​ HttpServletResponse:每次请求进来,Tomcat都会创建一个response对象传给servlet使用

1.1.3.7 斜杠

​ 斜杠一般表示绝对路径

1.1.3.8 文件上传下载

​ 用Stream流进行传输

1.1.4 Http协议
1.1.4.1 基本概念

​ 客户端、服务端之间通信需要遵守的协议,两者之间传输的数据叫报文

1.1.4.2 Get/Post请求
	1. 请求行
   		1. 请求方式 get
   		2. 请求路径: a.html
   		3. 请求协议版本号
	2. 请求头
   		1. Accept: 客户端可以接受的数据类型
   		2. Accept-Language:告诉服务器客户端客户接受的语言类型
   		3. User-Agent:浏览器信息
   		4. Host:请求服务器的ip和端口
   		5. Connection:服务器回传数据马上关闭还是保持一小段时间连接

image-20220630153658703

1.1.4.3 响应码

​ 1XX:服务器收到请求,需要请求者继续执行操作

​ 2XX:请求成功

​ 3XX:重定向

​ 4XX:客户端错误

​ 5XX:服务器错误

1.1.4.3 MIME类型

​ MIME是HTTP协议数据类型,包含文本,音频之类的

1.1.4.4 Http请求步骤
1. 域名到ip的解析:由域名经过浏览器缓存、系统缓存、hosts文件、路由器缓存、递归搜索根域名服务器(DNS解析)
2. TCP/IP连接
3. 浏览器发送http请求,经过路由器转发,通过服务器防火墙,到达服务器,服务器处理并返回HTML界面
4. 浏览器解析该HTML并展示
5. 服务器进行TCP四次挥手断开连接
1.1.4.5 Https

​ https是通过SSL或TLS的通信加密协议

1. 客户端发送https请求到服务端443端口
2. 服务端生成公私钥给客户端,客户端进行一个随机值的加密给服务端,服务端收到后进行解密,然后内容加密给客户端
3. 客户端收到加密内容后就能进行解密展示

​ http与https区别:

1. 端口不同,http是80端口,https是443端口
1. https加密和开销多
1.1.5.1 基本概念

​ 服务器通知客户端保存数据的一种技术,默认获取到了之后每次请求都带上cookie,默认4KB

1.1.5.2 生命周期

​ Maxage:

​ 整数:指定秒数

​ 负数:浏览器一关就会被删除

​ 0:马上删除cookie

1.1.6 Session
1.1.6.1 基本概念

​ Session就是一个接口(HttpSession),存在服务端,用来维护客户端和服务端的会话。除了第一次调用是创建session之外,之后调用都是都是获取前面创建好的session会话对象,默认超时时间30分钟

  1. 客户端第一次请求,服务端根据request.getSession()先创建Session,传给浏览器后浏览器Cookie的Key是JESSIONID,值是SessionId。Session保存在服务端内存中,每次重启就没了。之前用了SpringSession代理导致误以为两者id不一致!!!
  2. 后续客户端设置了Cookie之后就再请求服务端就能获取创建好的Session对象
  3. 所以无论是服务器重启,还是说浏览器关掉之后、手动删了客户端Cookie,下次请求的时候没有携带Cookie,服务器都会重新创建一个新的Session会话
1.1.7 Filter

​ filter过滤器也包含了init创建,销毁这些步骤

​ Filter也可以给所有service方法包含try,catch方法

1.1.7 ThreadLocal

​ ThreadLocal用于解决线程并发下数据安全问题

1.1.8 i18n国际化

​ 语言规范,实现中英文转换


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章