前后端分离项目面试总结
一:是否登录状态
服务端登录的时候,给分配一个session用于存储数据,同时将sessionID返回给浏览器,浏览器通过cookie把sessionID存储起来,下次访问时携带上,服务端就可以通过sessionID来确定用户是否登录。
当用户请求页面,一般需要先登录,用户第一次输入用户名和密码之后,前台发送post请求,后台获取用户信息,通过查询数据库来验证用户信息是否正确,如果验证通过,则会开辟一块session空间来储存用户数据,并且同时生成一个cookie字符串,由后台返回给前台,前台接收后,会把这个cookie字符串储存到浏览器的cookie空间中,这个cookie就相当于一把钥匙,可以打开后台存储对应用户信息的锁,当用户下一次请求的时候,客户端便会自动携带这个cookie去请求服务器,服务器识别后,就会读取session中的用户信息,这样用户就可以直接访问,就不需要再输入用户名密码来验证身份了。
缺点:需要服务端存储,用户量多的情况下就需要占大量内存,成本高,因此出现了token技术...
二:session和cookie的区别
保存位置:
cookie保存在浏览器端,session保存在服务端。
使用方式:
cookie如果在浏览器端对cookie进行设置对应的时间,则cookie保存在本地硬盘中,此时如果没有过期,则就可以使用,如果过期则就删除。如果没有对cookie设置时间,则默认关闭浏览器,则cookie就会删除。
session:我们在请求中,如果发送的请求中存在sessionId,则就会找到对应的session对象,如果不存在sessionId,则在服务器端就会创建一个session对象,并且将sessionId返回给浏览器,可以将其放到cookie中,进行传输,如果浏览器不支持cookie,则应该将其通过encodeURL(sessionID)进行调用,然后放到url中。
存储内容:
cookie只能存储字符串,而session存储结构类似于hashtable的结构,可以存放任何类型。
存储大小:
cookie最多可以存放4k大小的内容,session则没有限制
应用场景:
cookie可以用来保存用户的登陆信息,如果删除cookie则下一次用户仍需要重新登录,session就类似于我们拿到钥匙去开锁,拿到的就是我们个人的信息,一般我们可以在session中存放个人的信息或者购物车的信息。
弊端:
cookie的大小受限制,cookie不安全,如果用户禁用cookie则无法使用cookie。如果过多的依赖session,当很多用户同时登陆的时候,此时服务器压力过大。sessionId存放在cookie中,此时如果对于一些浏览器不支持cookie,此时还需要改写代码,将sessionID放到url中,也是不安全。
三:Servlet的生命周期
定义:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,是运行在 Web 服务器或应用服务器上的程序。
作用:它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。主要功能在于收集来自网页表单的用户输入,交互式地浏览和生成数据,还可以生成动态Web内容。
生命周期:
实例化 :Servlet 容器创建 Servlet 的实例
初始化 :该容器调用init() 方法
请求处理 :如果请求Servlet,则容器调用 service()方法
服务终止 :销毁实例之前调用destroy() 方法

四:为什么要重写doget
在Servlet中我们尽量重写doGet和doPost方法,而不直接重写Service方法(简言之就是Service里面实现了一些其他好的方法,重写后就得不到这种好处了),这样第一次加载完成之后,接下来再访问能提高加载的速度,特别是静态资源多的一些网站。
五:数据库连接怎么传给前端
前端使用AJAX或者表单提交的方式将请求发送给后端,后端根据前端发过来的请求重写doGet()或者doPost()请求去执行相应的业务逻辑,首先使用request,getparameter()方式接收前端传过来的参数,然后进行设置相应类型和编码,把数据存在PrintWriter(),在调用respons.getWriter()获取printWriter对象,传给前端。
六:重定向有什么特点
当地址栏发生变化时,可以跳转到重定向的网页。
重定向是2次请求,不能使用request对象共享数据
七:final特点和static特点
final:
被修饰的类不能被继承
被修饰的方法不能被重写
被修饰的常量不能被改变
static:
全局唯一,不可被二次赋值,必须由初始值
静态方法只能调用静态属性
不可修饰构造方法
修饰的方法不能被重写
八:get和post的区别
1. get因为参数会放在url中,所以隐私性,安全性较差,请求的数据长度是有限制的,不同的浏览器和服务器不同,一般限制在 2~8K 之间,更加常见的是 1k 以内;
post请求是没有的长度限制,请求数据是放在body中;2. get请求可以被缓存,post请求不会被缓存。
3. get请求只能进行url编码(appliacation-x-www-form-urlencoded),post请求支持多种(multipart/form-data等)。
4. get请求刷新服务器或者回退没有影响,post请求回退时会重新提交数据请求。
底层:
GET 和 POST都是http请求方式,底层都是 TCP/IP协议;通常GET 产生一个 TCP 数据包;POST 产生两个 TCP 数据包(但firefox是发送一个数据包),
对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应 200(返回数据)表示成功;而对于 POST,浏览器先发送 header,服务器响应 100, 浏览器再继续发送 data,服务器响应 200 (返回数据)。
九:v-if和v-show的区别
1.v-if 和 v-show 都是用来控制元素渲染, v-if 是根据后面数据的真假来进行渲染来判断
2.DOM的添加删除等操作 v-show只是在修改元素的css样式(display属性值)
3.v-show不管初始条件是否为真,都会被渲染
4. v-if 有更高的切换消耗,不适合做频繁的切换,v-show 有更高的出事渲染消耗,适合做频繁的切换
相关文章:
前后端分离项目面试总结
一:是否登录状态 服务端登录的时候,给分配一个session用于存储数据,同时将sessionID返回给浏览器,浏览器通过cookie把sessionID存储起来,下次访问时携带上,服务端就可以通过sessionID来确定用户是否登录。 …...
力扣刷题笔记
记录5-6月力扣刷题,持续刷题中~ 2024.05 15.三数之和 双指针或者哈希表,注意去重的操作要考虑仔细 class Solution { public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> result;sort…...
【JS逆向百例】某点数据逆向分析,多方法详解
前言 最近收到粉丝的私信,其在逆向某个站点时遇到了些问题,在查阅资料未果后,来询问K哥,K哥一向会尽力满足粉丝的需求。网上大多数分析该站点的教程已经不再适用,本文K哥将提供 3 种解决方案,对于 webpack…...
windows系统docker镜像导出
docker镜像导入导出(windows)_windowdocker下载镜像导出-CSDN博客https://blog.csdn.net/qq_22211217/article/details/93936363...
selenium前期准备
驱动地址: a. chromedriver:https://googlechromelabs.github.io/chrome-for-testing/ b. https://registry.npmmirror.com/binary.html?pathchromedriver/ selenium原理:Selenium 是一个用于自动化测试 Web 应用程序的工具集 a. 浏览器驱动࿰…...
[Python人工智能] 四十六.PyTorch入门 (1)环境搭建、神经网络普及和Torch基础知识
从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解合如何利用keras和tensorflow构建基于注意力机制的CNN-BiLSTM-ATT-CRF模型,并实现中文实体识别研究。这篇文章将介绍PyTorch入门知识。前面我们的Python人工智能主要以TensorFlow和Keras为主,…...
示例:推荐一个应用Adorner做的通知和提示消息对话框
一、目的:在开发过程中,增加一些提示消息可以很好的提高用户体验,下面介绍一个用于增加提示消息的库 二、效果如下 可以看到右侧顶端弹出提示消息,消息间隔3s自动退出 三、环境 VS2022 Net7 四、使用方式 安装nuget包ÿ…...
nvdiadocker相关配置S3Gaussian
https://download.csdn.net/download/sinat_21699465/89458214 dockerfile文件参考: https://download.csdn.net/download/sinat_21699465/89458214 prework: 显卡驱动决定了cuda版本支持的上限。例如nvdia535驱动最高支持cuda12.2所以显卡驱动版本选…...
【科技前沿】电子设计新贵SmartEDA:为何它引领行业风潮?
在当今这个电子科技日新月异的时代,电子设计工具如同设计师的魔法棒,不断推动着产品创新的速度。而近期,一款名为SmartEDA的电子国产设计仿真软件异军突起,成为了行业内的新宠。那么,SmartEDA究竟有何过人之处…...
免费悬浮翻译器哪个好?测评5款悬浮翻译器
在享受休闲时光时,我们通常都希望不被打扰,对吧? 然而,有时打扰我们的并非是外界的干扰,而是在观看外语视频时,无法理解视频内容的烦躁感。 不过,今天本文将为大家揭开几款屏幕悬浮翻译软件的…...
压缩文件解压方法总结
在日常工作和生活中,压缩文件已经成为我们传输和存储大文件的常见方式。压缩文件可以将多个文件或文件夹打包成一个文件,并通过压缩算法减小文件的体积,从而节省存储空间和传输时间。收到压缩文件后,我们需要将其解压才能查看和使…...
探索Elastic Search:强大的开源搜索引擎,详解及使用
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引…...
vue中的代码分割
随着Web应用的日益复杂化,用户对页面加载速度的期望越来越高。在这种背景下,前端性能优化成为了开发者们必须面对的挑战。Vue.js,作为现代前端开发的首选框架之一,其轻量级和灵活性为构建高性能的Web应用提供了可能。然而…...
java课程设计GUI学生信息管理系统
目录 系统内容.. 3 用户界面模块... 4 数据存储模块... 4 信息管理模块... 4 管理模块.. 4 主要模块的算法描述... 4 –简要的语言描述... 4 运行及调试分析(测试数据及测试结果).. 5 课程设计总结... 7 参考文献(至少三个…...
一网通办怎么办?一网统管怎么管?
一网通办怎么办?一网统管怎么管? 下面资源来源于网络,如有侵权请联络删除! **一网通办与一网统管的建设背景、建设情况及建设意义** 一、建设背景随着信息技术的飞速发展,传统的政务服务方式已难以满足人民群众日益增长的需求。各部门信息系统独立运行,导致信息孤岛现象…...
Kubernetes Dashboard
Minikube 环境搭建 Kubernetes 的基本架构 Kubernetes 声明式语言 YAML YAML操作Kubernetes核心对象 CentOs搭建Kubernetes集群 Kubernetes进阶对象Deployment、DaemonSet、Service Kubernetes进阶对象Ingress、Ingress Class、Ingress Controller Kubernetes集群部署项目实践 …...
NSSCTF-Web题目15
目录 [HNCTF 2022 WEEK2]ez_SSTI 1、题目 2、知识点 3、思路 [SWPUCTF 2022 新生赛]Ez_upload 1、题目 2、知识点 3、思路 [HNCTF 2022 WEEK2]ez_SSTI 1、题目 2、知识点 SSTI、Jinja2 参考链接:1. SSTI(模板注入)漏洞(…...
每天认识:轮询和中断
轮询(Polling)和中断(Interrupt)是两种不同的事件处理机制,通常用于操作系统、硬件设备或软件程序中,以响应外部事件或内部状态变化。下面分别解释这两个概念: 轮询(Polling&#x…...
SpringBoot中使用MQTT实现消息的订阅和发布
SpringBoot中使用MQTT实现消息的订阅和发布 背景 java框架SpringBoot通过mQTT通信 控制物联网设备 还是直接上代码 第一步依赖: <!--mqtt相关依赖--><dependency><groupId>org.springframework.integration</groupId><artifactId>s…...
等保测评练习10
等级保护初级测评师试题10 姓名: 成绩: 判断题(10110分) 1.等级保护2.0三级系统测评合格最低分为60分() 70分且不能有高风险 2.当远程管理云计算平台中设备是…...
Kodi PVR IPTV Simple全方位应用指南:从入门到精通的多场景解决方案
Kodi PVR IPTV Simple全方位应用指南:从入门到精通的多场景解决方案 【免费下载链接】pvr.iptvsimple IPTV Simple client for Kodi PVR 项目地址: https://gitcode.com/gh_mirrors/pv/pvr.iptvsimple 一、场景痛点分析:当IPTV体验不如预期时&…...
Applied Intelligence投稿实战:从格式要求到高接受率的5个关键策略
1. 精准匹配期刊范围:避免编辑秒拒的第一道防线 投稿Applied Intelligence期刊时,最容易被忽视却最关键的一步就是研究范围匹配。我审过30篇稿件,发现80%的"desk rejection"(编辑直接拒稿)都源于研究方向与…...
保姆级教程:用CST 2023的RLC求解器搞定空心电感仿真(附网格优化技巧)
从零到精通的CST空心电感仿真实战指南:RLC求解器与网格优化全解析 在电磁兼容设计和高频电路开发中,空心电感作为无磁芯干扰的理想元件,其精确建模一直是工程师的痛点。传统手工计算难以应对复杂的高频效应,而商业仿真软件的门槛…...
抖音音乐高效解决方案:douyin-downloader批量下载与智能管理指南
抖音音乐高效解决方案:douyin-downloader批量下载与智能管理指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…...
视频会议不止办公!揭秘它如何重构医疗与教育两大行业
在数字技术全面普及的今天,视频会议早已不再局限于企业内部日常办公沟通这一单一用途,开始深度渗透到各大垂直行业领域中。其中医疗、教育这两大与民生息息相关的领域,更是借助定制化开发的视频会议技术,解决了不少长期存在的行业…...
三步掌握开源资源处理工具:让RPG Maker MV资源处理效率提升90%
三步掌握开源资源处理工具:让RPG Maker MV资源处理效率提升90% 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https:/…...
Flutter项目卡在‘assembleDebug’?Gradle配置优化全攻略
1. 为什么Flutter项目会卡在assembleDebug阶段? 这个问题困扰过无数Flutter开发者,尤其是刚入门的新手。当你满怀期待地运行flutter run命令,结果控制台卡在Running Gradle task assembleDebug...一动不动,那种感觉就像等一辆永远…...
别再为发票报销发愁!用Python+EasyOFD库,5分钟搞定OFD转PDF/图片(附完整代码)
5分钟极速解决发票报销难题:PythonEasyOFD高效转换实战指南 每次月底报销时,面对邮箱里堆积如山的OFD格式电子发票,你是否也感到头疼?手动一张张下载、转换、打印不仅耗时耗力,还容易出错。今天我们就来彻底解决这个困…...
Ryujinx:C编写的Nintendo Switch模拟器技术解析与应用指南
Ryujinx:C#编写的Nintendo Switch模拟器技术解析与应用指南 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx Ryujinx是一款用C#编写的实验性Nintendo Switch模拟器ÿ…...
JAVA中try catch无法捕获异常的原因是什么
Java 中的 try-catch 机制是处理异常的重要手段,但有时即使写了 try-catch 代码,异常仍会被抛出。这是因为 catch 块指定的异常类型可能无法与实际抛出的异常相匹配。让我们举一个代码意图捕获异常并打印特定信息的例子:public class Test {p…...
