当前位置: 首页 > news >正文

前后端分离项目面试总结

一:是否登录状态

        服务端登录的时候,给分配一个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月力扣刷题&#xff0c;持续刷题中~ 2024.05 15.三数之和 双指针或者哈希表&#xff0c;注意去重的操作要考虑仔细 class Solution { public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> result;sort…...

【JS逆向百例】某点数据逆向分析,多方法详解

前言 最近收到粉丝的私信&#xff0c;其在逆向某个站点时遇到了些问题&#xff0c;在查阅资料未果后&#xff0c;来询问K哥&#xff0c;K哥一向会尽力满足粉丝的需求。网上大多数分析该站点的教程已经不再适用&#xff0c;本文K哥将提供 3 种解决方案&#xff0c;对于 webpack…...

windows系统docker镜像导出

docker镜像导入导出(windows)_windowdocker下载镜像导出-CSDN博客https://blog.csdn.net/qq_22211217/article/details/93936363...

selenium前期准备

驱动地址&#xff1a; a. chromedriver:https://googlechromelabs.github.io/chrome-for-testing/ b. https://registry.npmmirror.com/binary.html?pathchromedriver/ selenium原理&#xff1a;Selenium 是一个用于自动化测试 Web 应用程序的工具集 a. 浏览器驱动&#xff0…...

[Python人工智能] 四十六.PyTorch入门 (1)环境搭建、神经网络普及和Torch基础知识

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解合如何利用keras和tensorflow构建基于注意力机制的CNN-BiLSTM-ATT-CRF模型,并实现中文实体识别研究。这篇文章将介绍PyTorch入门知识。前面我们的Python人工智能主要以TensorFlow和Keras为主,…...

示例:推荐一个应用Adorner做的通知和提示消息对话框

一、目的&#xff1a;在开发过程中&#xff0c;增加一些提示消息可以很好的提高用户体验&#xff0c;下面介绍一个用于增加提示消息的库 二、效果如下 可以看到右侧顶端弹出提示消息&#xff0c;消息间隔3s自动退出 三、环境 VS2022 Net7 四、使用方式 安装nuget包&#xff…...

nvdiadocker相关配置S3Gaussian

https://download.csdn.net/download/sinat_21699465/89458214 dockerfile文件参考&#xff1a; https://download.csdn.net/download/sinat_21699465/89458214 prework&#xff1a; 显卡驱动决定了cuda版本支持的上限。例如nvdia535驱动最高支持cuda12.2所以显卡驱动版本选…...

【科技前沿】电子设计新贵SmartEDA:为何它引领行业风潮?

在当今这个电子科技日新月异的时代&#xff0c;电子设计工具如同设计师的魔法棒&#xff0c;不断推动着产品创新的速度。而近期&#xff0c;一款名为SmartEDA的电子国产设计仿真软件异军突起&#xff0c;成为了行业内的新宠。那么&#xff0c;SmartEDA究竟有何过人之处&#xf…...

免费悬浮翻译器哪个好?测评5款悬浮翻译器

在享受休闲时光时&#xff0c;我们通常都希望不被打扰&#xff0c;对吧&#xff1f; 然而&#xff0c;有时打扰我们的并非是外界的干扰&#xff0c;而是在观看外语视频时&#xff0c;无法理解视频内容的烦躁感。 不过&#xff0c;今天本文将为大家揭开几款屏幕悬浮翻译软件的…...

压缩文件解压方法总结

在日常工作和生活中&#xff0c;压缩文件已经成为我们传输和存储大文件的常见方式。压缩文件可以将多个文件或文件夹打包成一个文件&#xff0c;并通过压缩算法减小文件的体积&#xff0c;从而节省存储空间和传输时间。收到压缩文件后&#xff0c;我们需要将其解压才能查看和使…...

探索Elastic Search:强大的开源搜索引擎,详解及使用

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 全文搜索属于最常见的需求&#xff0c;开源的 Elasticsearch &#xff08;以下简称 Elastic&#xff09;是目前全文搜索引…...

vue中的代码分割

随着Web应用的日益复杂化&#xff0c;用户对页面加载速度的期望越来越高。在这种背景下&#xff0c;前端性能优化成为了开发者们必须面对的挑战。Vue.js&#xff0c;作为现代前端开发的首选框架之一&#xff0c;其轻量级和灵活性为构建高性能的Web应用提供了可能。然而&#xf…...

java课程设计GUI学生信息管理系统

目录 系统内容.. 3 用户界面模块... 4 数据存储模块... 4 信息管理模块... 4 管理模块.. 4 主要模块的算法描述... 4 –简要的语言描述... 4 运行及调试分析&#xff08;测试数据及测试结果&#xff09;.. 5 课程设计总结... 7 参考文献&#xff08;至少三个&#xf…...

一网通办怎么办?一网统管怎么管?

一网通办怎么办?一网统管怎么管? 下面资源来源于网络,如有侵权请联络删除! **一网通办与一网统管的建设背景、建设情况及建设意义** 一、建设背景随着信息技术的飞速发展,传统的政务服务方式已难以满足人民群众日益增长的需求。各部门信息系统独立运行,导致信息孤岛现象…...

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 参考链接&#xff1a;1. SSTI&#xff08;模板注入&#xff09;漏洞&#xff08;…...

每天认识:轮询和中断

轮询&#xff08;Polling&#xff09;和中断&#xff08;Interrupt&#xff09;是两种不同的事件处理机制&#xff0c;通常用于操作系统、硬件设备或软件程序中&#xff0c;以响应外部事件或内部状态变化。下面分别解释这两个概念&#xff1a; 轮询&#xff08;Polling&#x…...

SpringBoot中使用MQTT实现消息的订阅和发布

SpringBoot中使用MQTT实现消息的订阅和发布 背景 java框架SpringBoot通过mQTT通信 控制物联网设备 还是直接上代码 第一步依赖&#xff1a; <!--mqtt相关依赖--><dependency><groupId>org.springframework.integration</groupId><artifactId>s…...

等保测评练习10

等级保护初级测评师试题10 姓名&#xff1a; 成绩&#xff1a; 判断题&#xff08;10110分&#xff09; 1.等级保护2.0三级系统测评合格最低分为60分&#xff08;&#xff09; 70分且不能有高风险 2.当远程管理云计算平台中设备是…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...