转发与重定向
一、Servlet 概述
Servlet 是 Java Web 开发中用于处理浏览器端请求的组件。
工作原理
Servlet 生命周期由 Web 容器管理,核心方法有三个:
init():初始化,只执行一次
service():处理请求
destroy():销毁,只执行一次
HttpServlet
HttpServlet 继承自 Servlet 接口,封装了处理 HTTP 请求的各种方法(doGet、doPost、doPut、doDelete 等)。
运行Servlet1,结果为Selvet2的内容



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


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

二、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():方法、比较内容(默认也是比较地址,但可重写)

浙公网安备 33010602011771号