面试(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 引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量
下的服务器负载。

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

加入酷开会员 酷开系统带你一起开启看电视的美好时光!

看电视对孩子和大人来说&#xff0c;都是有好处的。英国的《星期日泰晤士报》曾刊登报道&#xff1a;“看电视可以让小孩增长见闻&#xff0c;学习各种良好的社交和学习技巧&#xff0c;从而为他们今后的学习打下良好的基础。”而对于成年人来说&#xff0c;看电视也是一种娱乐…

linux 安装 pptp 协议

注意&#xff1a;目前iOS已不支持该协议 yum -y install ppp wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/p/pptpd-1.4.0-2.el7.x86_64.rpm yum -y install pptpd-1.4.0-2.el7.x86_64.rpm vi /etc/pptpd.conf 去除 localip 和 remoteip的注释 …

【.Net】Polly

文章目录 概述服务熔断、服务降级、服务限流、流量削峰、错峰、服务雪崩Polly的基本使用超时策略悲观策略乐观策略 重试策略请求异常响应异常 降级策略熔断策略与策略包裹&#xff08;多种策略组合&#xff09; 参考 概述 Polly是一个被.NET基金会支持认可的框架&#xff0c;同…

SAP-MM 新增公司代码 激活物料分类账

1、OMX1 - 激活物料分类账&#xff08;配置环境&#xff09; 2、CKMSTART - 物料分类账的生产开始&#xff08;生产机运行&#xff09; 不激活创建物料时会报错&#xff1a;估价范围还没有生产式的物料账簿 执行后结果&#xff1a; 以上~~

creo扫描杯子学习笔记

creo扫描杯子学习笔记 扫描2要素&#xff1a; 轨迹&#xff0c; 截面。 多用于曲线扫描&#xff0c;区别于拉伸命令。 大小自定 旋转扫描 抽壳 草绘把手 扫描把手 复制曲面 实例化切除 成型

Web爬虫

&#x1f4d1;前言 本文主要是【Web爬虫】——简单使用的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&#…

PHP实现网站微信扫码关注公众号后自动注册登陆实现方法及代码【关注收藏】

在网站注册登陆这环节&#xff0c;增加微信扫码注册登陆&#xff0c;普通的方法需要开通微信开发者平台&#xff0c;生成二维码扫码后才能获取用户的uinonid或openid&#xff0c;实现注册登陆&#xff0c;但这样比较麻烦还要企业认证交费开发者平台&#xff0c;而且没有和公众号…

区域自动气象站讲解

TH-QC10当我们每天查看天气预报&#xff0c;安排出行计划&#xff0c;或是在户外活动时关注天气变化&#xff0c;很少有人会想到这一切背后默默付出的“英雄”——区域自动气象站。这些看似不起眼的气象监测设备&#xff0c;却在我们日常生活中扮演着至关重要的角色。今天&…

【话题】程序员35岁会失业吗?

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读小5的系列文章&#xff0c;这是《话题》系列文章 目录 背景招聘分析一、技术更新换代的挑战二、经验与技术的双重优势三、职业发展的多元化选择四、个人成长与职业规划的平衡五、结语文章推荐 背景 35岁被认为是程序员职业生…

【OJ】stack刷题

个人主页 &#xff1a; zxctscl 如有转载请先通知 题目 1. 155. 最小栈1.1 分析1.2 代码 2. JZ31 栈的压入、弹出序列2.1 分析2.2 代码 3. 150. 逆波兰表达式求值3.1 分析3.2 代码 1. 155. 最小栈 1.1 分析 利用两个栈&#xff0c;一个栈a负责入数据和出数据&#xff0c;另一个…

分类预测 | Matlab实现DRN深度残差网络数据分类预测

分类预测 | Matlab实现DRN深度残差网络数据分类预测 目录 分类预测 | Matlab实现DRN深度残差网络数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现DRN深度残差网络数据分类预测&#xff08;完整源码和数据&#xff09;&#xff0c;运行环境为Matl…

合宙开发板Core_Air780E测试AT指令

一、官方资料 CORE-AIR780E 开发板是合宙通信推出的基于 Air780E 模组所开发的&#xff0c;包含电源&#xff0c;SIM 卡&#xff0c;USB&#xff0c;天线&#xff0c;音频等必要功能的最小硬件系统。以方便用户在设计前期对 Air780E 模块 进行性能评估&#xff0c;功能调试&…

CUDA10的安装

1、因为要用到tensorflow1.15.5的GPU版本&#xff0c;所以想安装cuda10来进行加速&#xff0c;通过nvidia-smi检查本机上的CUDA版本 2、下载的cuda10版本&#xff0c;cuda_10.0.130_411.31_win10.exe 下载的cudnn版本&#xff0c;cudnn-10.0-windows10-x64-v7.6.4.38.zip 然后…

mathtype如何嵌入到word中?mathtype 7永久激活码密钥及2024最新序列号附安装教程

将MathType嵌入到Word中的方法主要有三种&#xff0c;分别是&#xff1a; 通过加载项嵌入MathType。首先&#xff0c;在Word中点击“文件”按钮&#xff0c;选择“选项”&#xff0c;然后选择“加载项”一栏&#xff0c;找到MathType相关的加载项并勾选&#xff0c;点击“确定…

20240404这个数字有什么特点吗?

今天是2024年的清明节&#xff0c;20240404这个数字让我提出了一个疑问&#xff0c;它是否有什么含义或者特点呢&#xff1f; 首先&#xff0c;如果把它拆分为两个整数的平方和&#xff0c;会怎么样呢&#xff1f; 于是&#xff0c;我一顿操作猛如虎&#xff0c;搞出了这么个…

html--烟花3

html <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Canvas烟花粒子</title> <meta name"keywords" content"canvas烟花"/> <meta name"description" content"can…

Kubernetes学习笔记8

Kubernetes集群客户端工具kubectl 我们已经能够部署Kubernetes了&#xff0c;那么我们如何使用Kubernetes集群运行企业的应用程序呢&#xff1f;那么&#xff0c;我们就需要使用命令行工具kubectl。 学习目标&#xff1a; 了解kubectl 命令帮助方法 了解kubectl子命令使用分…

看不惯各种信息收集表,我手写了一个身份证号输入组件

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen 背景 shigen最近的需要填写各种报名表的场景有点多&#xff0c;很多场景都要输…

三防笔记本丨加固笔记本丨三防笔记本电脑赋能车辆检修

随着汽车数量的不断增加和交通运输行业的发展&#xff0c;车辆检修行业成为了保障交通安全和延长车辆寿命的重要领域。在车辆检修过程中&#xff0c;需要使用各种工具和设备来进行检测、维修和保养&#xff0c;而信息化技术的应用正逐渐渗透到这一行业中&#xff0c;为检修工作…

【C++】背包问题

目录 背包问题01 背包背包不装满问题背包必须满问题 完全背包 背包问题 背包问题属于动态规划的一类题型 01 背包 背包不装满问题 背包必须满问题 #include <iostream> using namespace std; const int N 1010; #include <vector> int main() {int n , V;int v[…