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框架面试题目,关注博主带你一起进步成功进入大厂。

相关推荐
扶苏-su2 小时前
Java---IO流原理和分类
java·开发语言
JIngJaneIL2 小时前
基于java+ vue学生成绩管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
a程序小傲2 小时前
得物Java面试被问:反射机制的原理和应用场景
java·python·面试
小恒恒2 小时前
2025 Vibe Coding 有感
前端·uni-app·trae
用户21411832636022 小时前
dify案例分享-免费体验Dify + Qwen-Image-2512 文生图图生图全流程
前端
黎雁·泠崖2 小时前
Java底层探秘进阶:JIT汇编逐行拆解!Java方法栈帧与C语言深度对标
java·c语言·汇编
千寻girling2 小时前
面试官 : “ 说一下 localhost 和127.0.0.1 的区别 ? ”
前端·javascript·面试
老华带你飞2 小时前
智能菜谱推荐|基于java + vue智能菜谱推荐系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
指尖跳动的光2 小时前
cookie可以实现不同域共享吗
前端