JavaWeb经典面试题

目录

1、Session和Cookie的机制和区别?

2、Servlet实现的方法有哪些,和声明周期的相关的方法是哪些?

3、HTTP协议请求和响应的报文格式?

4、Http协议GET和POST区别?

5、HTTP协议常见的响应状态码和含义?

6、转发和重定向的区别?

7、什么是AJAX,主要有什么作用?

8、说一下JSP的4中作用域?


1、Session和Cookie的机制和区别?

存储位置:cookie数据保存在客户端,session数据保存在服务端。

安全性:由于Cookie存储在用户的计算机上,因此可能存在安全风险,例如被篡改或窃取。相比之下,Session存储在服务器上,因此更安全。

数据大小:由于Cookie存储在用户的计算机上,因此其数据大小有限制,一般不超过4KB。而Session没有数据大小的限制。

生命周期:Cookie有一定的生命周期,一旦超过设定的生命周期,它将被删除。而Session的生命周期与浏览器会话生命周期相同,即用户关闭浏览器时Session将被删除。

2、Servlet实现的方法有哪些,和声明周期的相关的方法是哪些?

Servlet 的三种实现方案:

实现 javax.servlet.Servlet 接口:直接实现该接口,需重写所有生命周期方法。

继承 javax.servlet.GenericServlet 抽象类:提供通用的非 HTTP 协议无关的实现,只需关注核心逻辑。

继承 javax.servlet.http.HttpServlet 类(最常用):专为 HTTP 协议设计,自动分发 GET、POST 等请求到对应的 doGet()、doPost() 等方法。

Servlet 的生命周期包含三个阶段:初始化 → 请求处理 → 销毁,分别对应以下方法:

  1. 初始化阶段 ------ init() 方法

  2. 请求处理阶段 ------ service() 方法

  3. 销毁阶段 ------ destroy() 方法

3、HTTP协议请求和响应的报文格式?

HTTP请求报文:包括请求行、请求头部、空行、请求体。

HTTP响应报文:包括状态行、响应头部、空行、响应体。

请求头携带客户端元数据(如用户代理、认证、内容类型)。

响应头提供服务器信息(如数据格式、缓存控制、服务器标识)。

4、Http协议GET和POST区别?

浏览器和表单默认的提交方式是GET,get请求效率比POST高。

GET请求参数在URL中,POST请求参数在请求体中。

POST比GET更加安全

5、HTTP协议常见的响应状态码和含义?

1xx:信息性(临时响应,很少见)

100 Continue:客户端可继续发送请求体。

2xx:成功

200 OK:请求成功(GET/POST 等正常返回)。

201 Created:资源创建成功(常用于 POST 成功后)。

204 No Content:请求成功,但无返回内容(如 DELETE 成功)。

3xx:重定向

301 Moved Permanently:永久重定向(SEO 友好,会更新书签)。

302 Found(或 307 Temporary Redirect):临时重定向。

304 Not Modified:资源未修改,可使用缓存(配合 If-Modified-Since 使用)。

4xx:客户端错误

400 Bad Request:请求格式错误(如 JSON 格式不对)。

401 Unauthorized:未认证(缺少或无效 Token / 登录凭证)。

403 Forbidden:已认证但无权限访问。

404 Not Found:请求的资源不存在。

405 Method Not Allowed:请求方法不被允许(如对只读接口发 POST)。

5xx:服务器错误

500 Internal Server Error:服务器内部错误(通用错误)。

502 Bad Gateway:网关/代理收到无效响应(如 Nginx → 应用宕机)。

503 Service Unavailable:服务暂时不可用(如维护、过载)。

504 Gateway Timeout:网关超时(上游服务器没及时响应)。

6、转发和重定向的区别?

转发是内部的,重定向是外部的,转发是服务器内部跳转,数据不会丢失,浏览器只提交了一次请求,重定向是想客户端二次跳转,数据会丢失。

重定向浏览器地址栏中URL会发生改变,变成新的请求地址;转发浏览器地址栏中URL不会改变

重定向:当需要跳转到一个外部资源或者希望用户看到新的URL地址时使用,例如用户登录成功后跳转到网站首页,且首页地址可能会被搜索引擎收录,此时适合用重定向。

用于处理表单提交后防止用户重复提交,通过重定向到一个结果页面,用户刷新结果页面不会重新提交表单数据。

转发:用于服务器内部资源的整合和处理,例如一个Servlet处理用户请求后,根据不同的业务逻辑转发到不同的JSP页面进行展示,这些页面共享部分数据,适合用转发。

7、什么是AJAX,主要有什么作用?

AJAX是一种用于创建快速动态网页的技术。通过后台服务器进行少量的交换,AJAX可以使用网页实现异步更新。意味着不需要重新加载网页,对网页的某部分进行更新。

8、说一下JSP的4中作用域?

application:在所有应用程序中有效;

session:在当前会话中有效;

request:在当前请求中有效;

page:在当前页面有效;

后续会继续更新Spring框架面试题目,关注博主带你一起进步成功进入大厂。

相关推荐
华玥作者11 小时前
[特殊字符] VitePress 对接 Algolia AI 问答(DocSearch + AI Search)完整实战(下)
前端·人工智能·ai
天才奇男子11 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
Mr Xu_11 小时前
告别冗长 switch-case:Vue 项目中基于映射表的优雅路由数据匹配方案
前端·javascript·vue.js
qq_2975746711 小时前
【实战教程】SpringBoot 实现多文件批量下载并打包为 ZIP 压缩包
java·spring boot·后端
老毛肚11 小时前
MyBatis插件原理及Spring集成
java·spring·mybatis
前端摸鱼匠11 小时前
Vue 3 的toRefs保持响应性:讲解toRefs在解构响应式对象时的作用
前端·javascript·vue.js·前端框架·ecmascript
学嵌入式的小杨同学11 小时前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)
java·linux·c语言·开发语言·vscode·vim·ux
lang2015092811 小时前
JSR-340 :高性能Web开发新标准
java·前端·servlet
Re.不晚12 小时前
Java入门17——异常
java·开发语言
缘空如是12 小时前
基础工具包之JSON 工厂类
java·json·json切换