16.面试重点CookieSession

news2025/1/17 3:42:40

一、文件上传(使用频率高,但不是很重要)

1.通过form表单

前端:

form表单,method必须是POST, enctype属性是multipart/form-data, type是file 

引起HTTP请求体的格式以multipart的形式传输

 后端:   

正常的支持POST请求的动态资源

 必须以@MltipartConfig修饰类 

使用 req.getPart(name)得到对应的Part对象,调用对应的方法得到需要的信息

如果要保存成链接可以访问的静态资源

            

2.通过JS+Ajax的方式实现

二、会话管理(Cookie/Session,使用频率高、面试多、难度大)

默认HTTP请求是无状态的:服务器不知道访问的请求属于哪个会话

会话(对话)是在请求(一句话)之上的概念

就有了 Cookie(凭证) + Session(我内部的记忆)机制

 在此查看cookie信息

Cookie和Session最主要的功能是用于做登陆态管理的                  


1.Session会话的数据结构:每个cookie对应一个存储柜(session)

Session是只存在于服务器的一套数据,通过session-id找到对应的数据

1.Session是纯粹Server内部的事情

是为每个会话准备了一个独立的Key-Value结构(HTTPSession对象:专属文件柜),通过session-id来区分。

2.一般,把session-id放在Cookie中,利用cookie的机制进行传递。

默认情况:存在内存中(不持久化:重新运行进程就没了)

其他的存储位置:本地文件、数据库、内存数据库(Redis、Mecached)

3.Servlet代码上,getSession( ):

如果是true,就返回之前的,如果是flase,就当场新建一个会员

HttpSession:getAttribute(name)   /  setAttribute(name,value)  /  removeAttribute(name)

4.Session本身也是独立的机制,如果浏览器禁用session,有时候可能无法访问国外的浏览器

 2.Cookie

Cookie和Session是最常见的场景是一起配合工作,但是两者是独立的。

cookie是HTTP协议相关的,属于Clint和Server之间的事情

1.Client(浏览器)的职责:

1.保护好cookie

2.需要在之后的请求中携带Cookie(表现为HTTP请求头的Cookie Header)

2.Server(服务器)的职责:

生成cookie并传递给浏览器 通过HTTP响应(表现为HTTP响应的Set-Cookie Header)

3.表现在HTTP协议上:

请求头:Cookie: name1 = value1;   name2 = value2;

响应头:Set-Cookie:name1 = value1;   name2 = value2;


cookie:浏览器和服务器交换数据的凭证

4.cookie是个独立的机制,本身还有一些属性:

 name设置了过期时间,43分时候就会过期。gender没有设置,所以他还是显示回话

5.使用Cookie +Session解决会话管理时,Cookie的主要职责是携带seesion-id

三、用户管理

1.用户注册(添加新用户)

2.用户登录(验证)

3.获取的登录用户信息

将用户数据持久化到MySql中

1.建表

2.操作数据库的对象 DAO data access object

4.注册

/register.html   form 提交username+password

/register.do     读取用户名+密码 ,完成用户的添加(插入到表中)

                      注册后直接登陆 or 跳转到登录页让用户登陆

没有设置字符集编码所导致的

四、Web开发

 一个web应用是由多个场景,每个场景下又由多个功能组成。(多个页面html)

一个页面包括 1个Html,n个css、js资源,n个json资源,n个*.do资源。

1.资源

1.路径path = context path + servlet path

2.内容格式类型(content-type):text/plain、text/css、application/javascript 、applicatio/json

3.作为开发者,确定静态/动态资源

4.支持的HTTP方法  (主要是动态)

2.浏览器-服务器之间是如何交换进程的

以资源为单位,进行HTTP协议的沟通

1.HTTP协议是应用层协议

2.请求方法:get / post

3.请求头:Cookie头

4.响应状态:1xx  、2xx 、3xx、 4xxx、5xxx(服务器错误)

                     200、404、405(不支持访问资源)、500(异常)、301 、302、307(重定向)

5.响应头:Content-type、Set-cookie

3.前端场景

 

4.JS中对DOM的操作

1.如何查询需要的结点

document.querySelector(选择器字符串)

选择器:

id选择器:  '#...'     class选择器: '.some'     元素选择器: 'body'

2.元素对象,常见属性之间读取或者修改

img.src = '..';    input.value = '...';

e.textContent | e.innerText   元素内部文本  

3.修改htm结构(插入孩子、删除孩子)

(1)e.innerHTML = '..'

 (2) var e = document.createElement('div');

     parent.appendChild(e);

     parent.removeChild(e);

4.后端场景

1.响应内容

resp.setCharacterEncoding("utf-8");

resp.setContentType("...");

resp.getWriter().var;

2.读取用户输入

(1)以form表单方式提交(放在query string或者请求体(x-www-urlencoded、multipart/form-data))

req.setCharacterEncoding(); getParameter("..");

如果是文件上传,必须使用@MultipartConfig修饰类,req.getPart(name)

(2)前端读取

直接从req.getInputStream()请求体输入流读取

借助jackson提供的方法

User user = objectMapper.readValue(req.getInputStream(),User.class)

5.关于数据——放在数据库JDBC的操作(DAO对象、model对象、Service对象)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UnRaid虚拟机安装Uos家庭版并由Windows远程桌面访问的成功流程

文章目录0、前言1、UnRaid虚拟机安装Uos家庭版1.1、下载Uos系统镜像1.1.1、在https://home.uniontech.com/官网下载镜像安装包(如下图:)1.1.2、上传至Unraid1.1.3、添加虚拟机1.1.4、激活Uos家庭版2、开启Uos的远程桌面2.1、为Uos安装xrdp服务…

【制作数字人】零门槛通过三维重建技术生成个人三维模型

依托各项技术的发展,数字人技术开始拔地而起。我们发现,各大一线互联网企业、三大运营商,还有不少创业型公司都纷纷入局数字人。 难道元宇宙的入门票是数字人?等不及了,马上接触下这门技术。经简单了解,现…

前端学习路线(三)

往期回顾↓↓↓ 前端学习路线(一) 前端学习路线(二) 在前两章中,我们讲了如何去学习前端三剑客、js高级和bootstrap的重点,得到了很多前端初学者的好评,收藏量也是每天都在增加,所以…

【身份证识别】基于matlab GUI BP神经网络身份证识别【含Matlab源码 2239期】

⛄一、身份证号码识别简介 1 引言 当今是一个信息高度发达的时代,对于每个公民而言身份证那一连串的数字体现了个人信息的唯一性,出于保障公民合法权益和社会治安的考虑,越来越多的行业都开始建立自己的安全保障体系,其中最为关键…

STA:虚拟时钟(virtual clock)与I/O延时约束

1.什么是虚拟时钟? 虚拟时钟(virtual clock)是存在但没有clock source(pin/port)定义的时钟,仅作为输入输出端口延时约束的参考时钟。定义方式如下例: create_clock -name virtual_clock -period 10 -waveform {0 5} &#xff1…

第四章:Spring七大核心模块Bean、Core、Context

Spring框架七大模块 容器模块(spring core)、应用上下文模块(spring context)、AOP模块(spring aop)、JDBC抽象和DAO模块(spring dao)、对象/关系映射集成模块(spring o…

R3LIVE代码详解(三)

0. 简介 在上一章中,我们过完了主函数以及LIO的操作,由于这部分代码在FAST-LIO2中已经充分详细的介绍过了,所以说这里在R3LIVE中就不过多介绍了,下面我们来看一下本系列的重点,即VIO部分。 1. 主函数 我们在之前分析…

美国访问学者申请|J1签证官方指定材料大全

美国访问学者申请需要哪些材料?下面就随知识人网老师一起来看一看J1签证官方指定材料大全。 一、 有效护照:如果您的护照将在距您预计抵美日期的六个月内过期、或已损坏、或护照上已无空白的签证签发页, 请在前来面谈之前先申请一本新护照。 二、DS-160…

leetcode:1957. 删除字符使字符串变好

难度:简单 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 。 给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 。 请你返回删除后的字符串。题目数据保证答案总是 唯一的 。 示例 1&#xf…

Podman 部署私有镜像仓库

Podman 部署私有镜像仓库 文章目录Podman 部署私有镜像仓库1. 安装 Podman 和 httpd-tools2. 配置仓库存储位置3. 生成访问仓库的凭据3.1 htpasswd 用户名和密码3.2 TLS 密钥对4. 启动容器5. 测试5.1 登陆5.2 API访问5.3 镜像入库5.4 查询镜像信息Podman是一个无守护进程的开源…

JavaScript基础(14)_in、hasOwnProperty、instanceof的用法、垃圾回收

in 用法:检查对象和原型对象是否含有该属性。 语法:"属性名" in 对象名 hasOwnProperty 用法:检查对象自身是否含有该属性。 语法:对象名.hasOwnProperty("属性名") instanceof 用法:检查一个对…

在裸机上输出Hello,world! [rCore-lab1]

引言 非常简单的“Hello, world”应用程序,实际上有着多层硬件和软件工具和支撑环境隐藏在它背后,才让我们不必付出那么多努力就能够创造出功能强大的应用程序。生成应用程序二进制执行代码所依赖的是以 编译器 为主的开发环境;运行应用程序执行码所依赖…

寻找更好的分类模型loss

寻找更好的loss1.CE loss并不完美2.可能更好的loss函数2.1 CC-LOSS2.2 Center-LOSS参考文献1.CE loss并不完美 最常用于深度学习分类模型的损失函数可以说就是CE(交叉熵) loss了。正如CC-LOSS paper中所述,该loss更关注各类是否separated,而非不同类之间…

Zookeeper:实现“通知协调”的 Demo

应用配置集中到节点上,应用启动时主动获取,并在节点上注册一个 watcher,每次配置更新都会通知到应用。数据发布/订阅(Publish/Subscribe)系统,即所谓的配置中心,顾名思义就是发布者将数据发布到…

[机器翻译]——pivot-based zero-shot translation based on fairseq

文章目录前言翻译到en生成"伪"的、到英语的数据文件把每一个zs语言对翻译到en从fairseq-generate生成的文件中,抽取纯en文件把en数据和所有zs语言对的tgt数据形成平行语料,然后做预处理形成en到tgt的平行语料预处理在en到tgt语言的"伪&qu…

IMC附录A

目录 A.1 恒等式与不等式 THEOREM A.1 (Binomial expansion theorem) PROPOSITION A.2 PROPOSITION A.3 PROPOSITION A.4 A.2 渐进符号 DEFINITION A.5 A.3 概率论基础 PROPOSITION A.7 (Union Bound) THEOREM A.8 (Bayes’ Theorem) PROPOSITION A.9 PROPOSITI…

图扑 Web SCADA 零代码组态水泥生产工艺流程 HMI

水泥是建筑工业三大基本材料之一,素有“建筑工业的粮食”之称。2022 年 1-9 月水泥产量为 15.63 亿吨,生产方法包括新型干法、立窑、湿窑、干法中空窑和立波尔窑等。 水泥生产线链条长、关键环节多的特性要求执行严密的流程监控。图扑软件大屏组态、UI 组…

国内家具行业数据浅析

大家好,这里是小安说网控。 家具是国民消费必需品之一,受疫情影响,近期销量数据不佳。2022年上半年,规模以上家具制造业企业营业收入3604亿元,同比下降4%;实现利润总额174.8亿元,同比增长2.6%。…

数据结构排序算法之冒泡排序

一 相关概念 稳定排序:如果原数据中a在b之前,而且ab,排序后a任然在b之前 不稳定排序:如果原数据中a在b之前,而且ab,排序后a在b之后 时间复杂度:对排序数据的总的操作次数,反映当n变…

安装Ruby和安装Rails详细步骤详解

rbenv安装Ruby rbenv可以管理多个版本的ruby。可以分为3种范围(或者说不同生效作用域)的版本: local版:本地,针对各项目范围(只在某个目录下有效) global版:全局,没有shell和local版时使用global版 shell版&#xf…