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

面试(04)————JavaWeb

1、网络通讯部分

1.1、 TCP 与 UDP 区别?

1.2、什么是 HTTP 协议? 

 1.3、TCP 的三次握手,为什么?

1.4、HTTP 中重定向和请求转发的区别? 

1.5、 Get 和 Post 的区别? 

2、cookie 和 session 的区别? 

3、Jsp 和 Servlet

3.1、Jsp 和 Servlet 的区别?

3.2、Servlet 的生命周期 

3.3、JSP 九大内置对象

4、Ajax 的介绍 


 

1、网络通讯部分

1.1、 TCP 与 UDP 区别?

ee1923ecc1db423492d4736c3416ee6e.png

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、
可靠的、 基于 IP 的传输层协议。
UDP 是 User Datagram Protocol 的简称,中文名是用户数据报协议,是 OSI 参考模
型中的传输层协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服
务。
TCP 和 UDP 都是来自于传输层的协议。传输层位于应用层和网络层之间,负责位于不
同主机中进程之间的通信。
TCP 与 UDP 区别:
2d2ed67778b34a749388bad28f6001f0.png
(1)TCP 基于连接 UDP 无连接
(2)TCP 要求系统资源较多,UDP 较少
(3)TCP 保证数据正确性,UDP 可能丢包
(4)TCP 保证数据顺序,UDP 不保证

1.2、什么是 HTTP 协议? 

客户端和服务器端之间数据传输的格式规范,格式简称为“超文本传输协议”。
是一个基于请求与响应模式的、无状态的、应用层的协议,基于 TCP 的连接方式

 1.3、TCP 的三次握手,为什么?

为了准确无误地把数据送达目标处,TCP 协议采用了三次握手策略。

7a8e421feec0432e9bc4264e382b3589.png

为什么要三次握手?
三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,
而三次握手最主要的目的就是 双方确认自己与对方的发送与接收是正常的。
SYN:同步序列编号(Synchronize Sequence Numbers)。是 TCP/IP 建立连接时
使用的握手信号。
第一次握手:客户端给服务器发送一个 SYN。客户端发送网络包,服务端收到了。服
务器得出结论:客户端的发送能力,服务端的接收能力正常。
第二次握手:服务端收到 SYN 报文之后,会应答一个 SYN+ACK 报文。服务端发包,客户
端收到了。客户端得出结论:服务端的接收和发送能力,客户端的接收和发送能力正常。但
是此时服务端不能确认客户端的接收能力是否正常。
第三次握手:客户端收到 SYN+ACK 报文之后,回应一个 ACK 报文。客户端发包,服务端收到了。服务器得出结论:客户端的接收和发送能力,自己的接收发送能力都正常。
通过三次握手,双方都确认对方的接收以及发送能力正常

1.4、HTTP 中重定向和请求转发的区别? 

转发:
用 request 的 getRequestDispatcher()方法得到 ReuqestDispatcher 对象, 调用 forward()方法 request.getRequestDispatcher("success.jsp").forward(request,response);
重定向:
调用 response 的 sendRedirect()方法 response.sendRedirect("success.jsp");

区别:
  •  重定向 2 次请求,请求转发 1 次请求
  • 重定向地址栏会变,请求转发地址栏不变
  •  重定向是浏览器跳转,请求转发是服务器跳转
  • 重定向可以跳转到任意网址,请求转发只能跳转当前项目

1.5、 Get 和 Post 的区别? 

1. Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中;Post 的所有操作对
用户来说都是不可见的。
2. Get 传送的数据量较小,一般传输数据大小不超过 2k-4k(根据浏览器不同,限制不
一样,但相差不大这主要是因为受 URL 长度限制;Post 传送的数据量较大,一般被默认为
不受限制。
3. Get 限制 Form 表单的数据集的值必须为 ASCII 字符;而 Post 支持整个 ISO10646
字符集。
4. Get 执行效率却比 Post 方法好。Get 是 form 提交的默认方法。

2、cookie 和 session 的区别? 

(1)存储位置不同
cookie 的数据信息存放在客户端浏览器上。
session 的数据信息存放在服务器上。
(2)存储容量不同
单个 cookie 保存的数据<=4KB,一个站点最多保存 20 个 Cookie。
对于 session 来说并没有上限,但出于对服务器端的性能考虑,session 内不要存放过
多的东西,并且设置 session 删除机制。
(3)存储方式不同
cookie 中只能保管 ASCII 字符串,并需要通过编码方式存储为 Unicode 字符或者二进
制数据。
session 中能够存储任何类型的数据,包括且不限于 string,integer,list,map 等。
( 4)隐私策略不同
cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie
欺骗,所以它是不安全的。
session 存储在服务器上,不存在敏感信息泄漏的风险。
(5)有效期上不同
开发可以通过设置 cookie 的属性,达到使 cookie 长期有效的效果。
session 依赖于名为 JSESSIONID 的 cookie,而 cookie JSESSIONID 的过期时间默认
为-1,只需关闭窗口该 session 就会失效,因而 session 不能达到长期有效的效果。
(6)服务器压力不同
cookie 保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie 是很
好的选择。
session 是保管在服务器端的,每个用户都会产生一个 session。假如并发访问的用户
十分多,会产生十分多的 session,耗费大量的内存。

3、Jsp 和 Servlet

3.1、Jsp 和 Servlet 的区别?

相同点:
jsp 经编译后就变成了 servlet,jsp 本质就是 servlet,jvm 只能识别 java 的类,不能
识别 jsp 代码,web 容器将 jsp 的代码编译成 jvm 能够识别的 java 类。其实就是当你通过
http 请求一个 JSP 页面是,首先 Tomcat 会调用 service()方法将JSP编译成为 Servlet,
然后执行 Servlet。

 
不同点:
JSP 侧重视图,Sevlet 主要用于控制逻辑。
Servlet 中没有内置对象 。
JSP 中的内置对象都是必须通过 HttpServletRequest 对象,HttpServletResponse 对
象以及 HttpServlet 对象得到。

3.2、Servlet 的生命周期 

// 1. servlet 对象创建时,调用此方法
public void init(ServletConfig servletConfig);// 2. 用户访问 servlet 时,调用此方法
public void service(ServletRequest servletRequest, ServletResponse servletResponse);// 3. servlet 对象销毁时,调用此方法
public void destroy();

3.3、JSP 九大内置对象

out 对象:用于向客户端、浏览器输出数据。
request 对象:封装了来自客户端、浏览器的各种信息。
response 对象:封装了服务器的响应信息。
exception 对象:封装了 jsp 程序执行过程中发生的异常和错误信息。
config 对象:封装了应用程序的配置信息。
page 对象:指向了当前 jsp 程序本身。
session 对象:用来保存会话信息。也就是说,可以实现在同一用户的不同请求之间共享数
application 对象:代表了当前应用程序的上下文。可以在不同的用户之间共享信息。
pageContext 对象:提供了对 jsp 页面所有对象以及命名空间的访问。

4、Ajax 的介绍 

Ajax 即"Asynchronous JavaScript And XML"(异步 JavaScript 和 XML),是指一种
创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更
新部分网页的技术。
$.ajax({ 
选项
})常见的选项有: 
type:请求方式,常见的值有"get","post"等,默认值:get 
url:请求的路径,"/ajax/hello" 
data:请求的参数,参数的常见写法有 键值对或者 json 
方式 1: name=tom&pwd=123 
方式 2: {"name":"tom","pwd":"123"} 
success:请求成功后的回调函数 function(返回值的参数名){} 
contentType:用来设置请求参数的 mime 类型,默认值:表单的 enctype 默认值
name=tom&pwd=123 
error:ajax 请求时内部发生错误时执行的回调函数 function(){} 
dataType:指定返回值的类型 常见值:text json 
async:是否异步 默认值 true

 

Ajax 应用程序的优势在于:
1)通过异步模式,提升了用户体验
2)优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
3)Ajax 引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量
下的服务器负载。

 

 

相关文章:

面试(04)————JavaWeb

1、网络通讯部分 1.1、 TCP 与 UDP 区别&#xff1f; 1.2、什么是 HTTP 协议&#xff1f; 1.3、TCP 的三次握手&#xff0c;为什么&#xff1f; 1.4、HTTP 中重定向和请求转发的区别&#xff1f; 1.5、 Get 和 Post 的区别&#xff1f; 2、cookie 和 session 的区别&am…...

Debian12 使用 nginx 与 php8.2 使用 Nextcloud

最近将小服务器升级了下系统&#xff0c;使用了 debian12 的版本&#xff0c;正好试试 nginx 和 php-fpm 这种方式运行 Nextcloud 这个私有云的配置。 一、基本系统及应用安装 系统&#xff1a;debian12 x86_64 位版本最小安装&#xff0c;安装后可根据自己需求安装一些工具&…...

Java设计模式:代理模式的静态和动态之分(八)

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 在软件设计中&#xff0c;代理模式是一种常用的设计模式&#xff0c;它为我们提供了一种方式来控制对原始对象的访问。在Java中&a…...

【论文通读】AgentStudio: A Toolkit for Building General Virtual Agents

AgentStudio: A Toolkit for Building General Virtual Agents 前言AbstractMotivationFramework评估GUI GroudingReal-World Cross-Application Benchmark Suite Conclusion 前言 来自昆仑万维的一篇智能体环境数据大一统框架工作&#xff0c;对未来计算机智能体的发展具有指…...

wordvect嵌入和bert嵌入的区别

Word2Vec 嵌入和 BERT 嵌入之间有几个关键区别&#xff1a; 训练方式&#xff1a; Word2Vec&#xff1a;Word2Vec 是一个基于神经网络的词嵌入模型&#xff0c;它通过训练一个浅层的神经网络来学习单词的分布式表示。它有两种训练方式&#xff1a;连续词袋模型&#xff08;CBOW…...

渗透测试练习题解析 5(CTF web)

1、[安洵杯 2019]easy_serialize_php 1 考点&#xff1a;PHP 反序列化逃逸 变量覆盖 【代码审计】 通过 GET 的方式获取参数 f 的值&#xff0c;传递给变量 function 定义一个过滤函数&#xff0c;过滤掉特定字符&#xff08;用空字符替换&#xff09; 下面的代码其实没什么用…...

PCA(Principal Component Analysis,主成分分析)

PCA&#xff08;Principal Component Analysis&#xff0c;主成分分析&#xff09;是一种在数据分析中广泛应用的统计方法&#xff0c;主要用于数据降维、可视化和去噪。以下是对PCA的发展史、工作原理以及理论基础的详细解释&#xff1a; Principal Component Analysis 一、PC…...

干货 | 探索CUTTag:从样本到文库,实验步步为营!

CUT&Tag&#xff08;Cleavage Under Targets and Tagmentation&#xff09;是一种新型DNA-蛋白互作研究技术&#xff0c;主要用于研究转录因子或组蛋白修饰在全基因组上的结合或分布位点。相比于传统的ChIP-seq技术&#xff0c;CUT&Tag反应在细胞内进行&#xff0c;创新…...

提质不增本,降本不降质

#公益巡讲# #质量万里行# 公开课、沙龙活动...

数据结构---顺序表实现

目录 1.顺序表 2.动态顺序表的实现 &#xff08;4&#xff09;顺序表初始化 &#xff08;5&#xff09;顺序表销毁 &#xff08;6&#xff09;顺序表的插入 a.尾插 b.头插 &#xff08;7&#xff09;顺序表的删除 a.尾删 b.头删 &#xff08;8&#xff09;指定位置之…...

python docx 添加动态表格

在Python中&#xff0c;使用python-docx库可以创建Word文档并添加动态表格。以下是一个简单的例子&#xff0c;演示如何创建一个包含动态内容的表格&#xff1a; from docx import Document# 创建一个Word文档 document Document()# 添加一个标题 document.add_heading(动态表…...

git配置多SSH

目的&#xff1a; 一台电脑可以让github、gitee等账号同时存在&#xff0c;让不同账号配置不同的密钥 第一步&#xff1a;创建不同平台的SSH公钥 执行命令&#xff1a; ssh-keygen -t rsa -C "对应仓库邮箱地址" -f ~/.ssh/id_rsa.github 如果执行上面的命令&…...

IDEA连接SqlServer数据库

目录 下载jar包 下载sqljdbc_12.6压缩包 解压 导入IDEA 新建文件夹 复制粘贴进JDBC文件夹并设为library 编写类及方法 代码 下载jar包 以sqljdbc_12.6为例 下载sqljdbc_12.6压缩包 最新地址&#xff1a;sqljdbc 官方最新地址 解压 解压即用 导入IDEA 新建文件夹 复制…...

LeetCode 378 有序矩阵中第K小的元素

题目信息 LeetoCode地址: . - 力扣&#xff08;LeetCode&#xff09; 题解内容大量转载于&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目理解 题意很直观&#xff0c;就是求二维矩阵中所有元素排序后第k小的数。 最小堆写法 该写法不再赘述&#xff0c;维护…...

Vue3(domdiff)最长递归子序列求解简易版(超简单)

Vue3&#xff08;domdiff&#xff09;最长递归子序列求解简易版 ⚠️ 关键词&#xff08;每一个都需要理解&#xff09;js 代码实现写完感想欢迎关注 ⚠️ 关键词&#xff08;每一个都需要理解&#xff09; 动态规划&#xff08;O(N^2)&#xff09;&#xff08;不提倡&#xf…...

LLaMA-Factory+qwen多轮对话微调

LLaMA-Factory地址&#xff1a;https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md qwen地址&#xff1a;https://huggingface.co/Qwen/Qwen-7B-Chat/tree/main 数据准备 数据样例 [ {"id": "x3959", "conversations": [{&qu…...

邦芒面试:如何在面试中巧妙回答自己的缺点

在面试中&#xff0c;被问及自己的缺点时&#xff0c;如何巧妙回答是一门学问。恰当的回答不仅能够展示你的自我认知&#xff0c;还能让面试官看到你的成长潜力和积极态度。 首先&#xff0c;切忌谈一些看似缺点实则优点的话题&#xff0c;如追求完美、待人接物太客气等。这些…...

Android:身份证识别功能实现

说明&#xff1a; 此文使用华为SDK、百度SDK、百度在线API三种方式实现。 一、使用华为SDK实现身份证识别&#xff1a; 说明&#xff1a;免费&#xff0c;不需要联网。 1.AndroidManifest.xml添加权限&#xff1a;<uses-permission android:name"android.permissio…...

MacOS安装Homebrew教程

安装 Homebrew 是在 macOS 上管理软件包的一种简便方法。以下是安装 Homebrew 的步骤&#xff1a; 打开终端&#xff1a;你可以通过在 Spotlight 搜索栏中输入“终端”并按下回车键来打开 macOS 的终端应用程序。 执行安装命令&#xff1a;在终端中粘贴以下命令并按下回车键执…...

laravel如何通过DB获取一条数据并转成数组

在 Laravel 中&#xff0c;你可以使用原生数据库查询构建器&#xff08;DB facade&#xff09;来获取一条数据&#xff0c;并将其转换为数组。这可以通过在查询链的末尾调用 first() 方法后&#xff0c;使用 toArray() 方法来实现。first() 方法会返回一个 StdClass 对象&#…...

ENSP USG防火墙接入虚拟机;开启Web访问;

1.添加防火墙及云&#xff0c;启动防火墙&#xff1b; 2.配置桥接网卡&#xff1b; 默认账户&#xff1a;admin 默认密码&#xff1a;Admin123 #第一次登陆需修改密码&#xff1b; 默认G0/0/0口为管理口&#xff0c;而在模拟器中进入防火墙的web需如下配置&#xff1a; 配置 …...

数据结构算法题(力扣)——链表

以下题目建议大家先自己动手练习&#xff0c;再看题解代码。这里只提供一种做法&#xff0c;可能不是最优解。 1. 移除链表元素&#xff08;OJ链接&#xff09; 题目描述&#xff1a;给一个链表的头节点 head 和一个整数 val &#xff0c;删除链表中所有满足值等于 val 的节点…...

LeetCode---391周赛

题目列表 3099. 哈沙德数 3100. 换水问题 II 3101. 交替子数组计数 3102. 最小化曼哈顿距离 一、哈沙德数 简单的模拟题&#xff0c;代码如下 class Solution { public:int sumOfTheDigitsOfHarshadNumber(int x) {int s 0, tmp x;while(tmp){stmp%10;tmp/10;}return x…...

微信小程序的页面交互2

一、自定义属性 &#xff08;1&#xff09;定义&#xff1a; 微信小程序中的自定义属性实际上是由data-前缀加上一个自定义属性名组成。 &#xff08;2&#xff09;如何获取自定义属性的值&#xff1f; 用到target或currentTarget对象的dataset属性可以获取数据 &#xff…...

【VSCode】修改插件地址

不想放在原始C盘下面C:\Users\{用户}\.vscode\extensions为了后续存储空间考虑&#xff0c;想通过添加环境变量创建名为VSCODE_EXTENSIONS的环境变量&#xff0c;内容指向vs Code扩展所在目录即可 直接配置环境变量&#xff0c;不要在有空格的文件夹下面 变量名称&#xff1a;…...

自然语言处理NLP概述

大家好&#xff0c;自然语言处理(NLP)是计算机科学领域与人工智能领域中的一个重要方向&#xff0c;其研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。本文将从自然语言处理的本质、原理和应用三个方面&#xff0c;对其进行概述。 一、NLP的本质 NLP是一种…...

计算机网络——37认证

认证 目标&#xff1a;Bob需要Alice证明他的身份 Protocol ap1.0&#xff1a;Alice说"A am Alice" 可能出现的问题&#xff1a; 在网络上Bob看不到Alice&#xff0c;因此Trudy可以简单的声称他是Alice 认证&#xff1a;重新尝试 Protocol ap2.0&#xff1a;Alice…...

Java中利用BitMap位图实现海量级数据去重

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 前言 什么是BitMap&#xff1f;有什么用&#xff1f; 基本概念 位图的优势 …...

Linux知识点记录

Linux知识点记录 1. 后台运行应用程序方法一&#xff1a;&方法二&#xff1a;nohup & 2. 一个shell脚本中执行多个应用程序3. 2>&14. shell脚本清除日志5. 通过grep查找匹配字符串 1. 后台运行应用程序 参考文章&#xff1a;https://blog.csdn.net/Pan_peter/…...

js的check函数

在JavaScript中&#xff0c;并没有一个内置的名为check的函数。然而&#xff0c;你可以根据需求自定义一个check函数&#xff0c;用于执行各种验证和检查任务。这个check函数的具体作用完全取决于你如何定义和实现它。 以下是一个简单的示例&#xff0c;展示了如何定义一个che…...

建网站 域名 空间/百度广告搜索推广

Wamp3.0.6 64bit&#xff0c;系统任务栏图标&#xff0c;左键&#xff0c;Apache菜单&#xff0c;httpd.conf&#xff0c;报错“could not execute menu item.....系统找不到指定的文件” 根据网上的搜索结果&#xff0c;首先发现了Wampmanager.ini里的[Menu.left]菜单&#xf…...

网站域名可以做端口映射吗/seo入门

1 inverse&#xff0c;在一对多中使用&#xff0c;表示是否有关联关系控制权。对于保存、删除数据有影响。 2 cascade&#xff0c;表示级联操作 save-update 表示级联保存和更新 delete 表示级联删除 all 表示级联保存、更新、删除 3 一级缓存&#xff0c;session缓存又称一级缓…...

西宁好的网站建设/今日国际新闻头条15条

MOSS 2007中包含了一个Excel Service&#xff0c;很多朋友都对其相当感兴趣。这里要介绍一下它的组成部分&#xff0c;以及具体它能做什么和不能做什么 下面这个地址是官方的blog http://blogs.msdn.com/excel/ 从下图可以看出&#xff0c;它包含前端和后端两个部分&#xff0c…...

济南网站建设/关键词检测工具

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include // 用srand、rand函数了#include // 用time函数了#define LEN 32// 产生min~max的随机数 (包含min和max)// rand函数产生0 ~ RAND_MAX 的随机数// 一般上不同编译器要求 RAND_MAX 的值(至少)为 32767#define RAN…...

网站demo制作工具/广东今日最新疫情通报

centos7虚拟机桥接模式静态ip设置方法 桥接模式&#xff0c;选择本地网卡模式 本地网卡参数&#xff1a;192.168.10.99 gateway:192.168.10.254 master主机 /etc/sysconfig/network-scripts/ifcfg-ens33文件内容如下&#xff1a; TYPE"Ethernet" BOOTPROTO"…...

钟落潭有没有做网站的/360搜索引擎下载

计算机网络就在我们身边 1.基本概念、基本原理和基本方法 RTT&#xff1a;往返传播时延 &#xff0c;时间越长&#xff0c;网络越卡 2.体系结构、网络协议和网络设备 微信聊天&#xff1a;发送出去的 图片、文字等在网络链路层是如何传输&#xff0c;转化成机器语言&#xff…...