• 尚硅谷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国际化

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


  • 相关阅读:
    TP5报如下的错误 Indirect modification of overloaded element of thinkpaginatorCollection has no effect【转】
    PHPnumber_format()函数的使用
    蓝桥杯-PREV28-地宫取宝
    HihoCode-1053-居民迁移
    HihoCode-1323-回文字符串
    蓝桥杯-PREV3-带分数
    HDU-6312-Game
    HDU-6438-Buy and Resell
    CF-1117C-Magic Ship
    HDU-2802-F(N)
  • 原文地址:https://www.cnblogs.com/meditation5201314/p/16434914.html
Copyright © 2020-2023  润新知