转发与重定向

运行Servlet1,结果为Selvet2的内容

屏幕截图 2026-03-17 184256

屏幕截图 2026-03-17 184303

屏幕截图 2026-03-17 184702


输入用户名密码,正确跳转一个页面,错误跳转一个页面

屏幕截图 2026-03-17 184913

屏幕截图 2026-03-17 185113

一、Request消息行/消息头/参数
image

二、Request请求转发(服务器内部的资源跳转方式)
服务器内部跳转到另一个资源,一次请求内完成
特点:一次请求,一次响应
// 设置共享数据
request.setAttribute("key", value);
// 转发到目标资源
request.getRequestDispatcher().forward()

三、Response输出流
response.getWriter():输出HTML、JSON、XML等文本
response.getOutputStream():输出图片、文件、PDF等二进制

四、Response重定向(客户端重新发起请求的方式)
告诉浏览器重新发起请求到另一个地址,两次请求完成
特点:两次请求,两次响应
实现:response.sendRedirect()

区别
请求转发:1次请求、地址栏不变、可共享request数据(数据共享)
重定向:2次请求、地址栏改变、不能共享request数据
请求转发流程
客户端 → ServletA → ServletB → 客户端
(请求) (转发) (响应)

响应重定向流程
客户端 → ServletA ← 客户端 → ServletB → 客户端
(请求) (302响应) (新请求) (响应)

Request消息行/头/参数:获取客户端发送的信息
Request请求转发:服务器内部跳转,共享数据
Response输出流:向客户端输出响应内容
Response重定向:客户端跳转,发起新请求

==:比较运算符、比较内存地址(是否同一个对象)
equals():方法、比较内容(默认也是比较地址,但可重写)

posted @ 2026-03-17 19:05  崩崩  阅读(7)  评论(0)    收藏  举报