文章目录
- 什么是重定向
- 重定向流程演示图
- 如何重定向
- 注意的问题
- 重定向的特点
- 重定向演示
什么是重定向
服务器向浏览器发送一个状态码 302 及一个消息头 location,浏览器收到后,会立即向 location 所指向的地址发送请求。
重定向流程演示图

(1)用户在浏览器提交 form 表单,通过 add 到服务器找到 AddEmp
 (2)AddEmp 向数据库中插入一条数据
 (3)AddEmp 返回给用户一个消息头 location = list(ListEmp 的地址)和 302 状态码,当浏览器碰到状态码 302 后,浏览器会自动向新地址发请求
 (4)浏览器自动通过 list 找到 ListEmp
 (5)ListEmp 到数据库中查询数据并返回给浏览器
如何重定向
response.sendRedirect(String url); 其中,url 是重定向的地址。
注意的问题
-  重定向之前,不能够有 out.close()或者out.flush()操作。为什么?重定向的内容需要写入到response对象中,必须用到out对象,所以不能在重定向之前不能把out关闭掉。方法flush()会把 out 对象的数据全部写入到response对象后,再关闭out。
-  重定向之前,如果 response对象缓存有数据,则这些数据会被清空。
-  在重定向代码后写输出语句会不会执行? 
 会执行。JVM 将顺序执行代码,除非遇到return或System.exit();
重定向的特点
- 重定向的地址是任意的
- 重定向之后,浏览器地址栏的地址变成了 location所指定的地址。
重定向演示

执行结果
1)IDE 开启 TCP/IP Monitor,浏览器访问http://localhost:8080/web03/addEmp.html,文本框输入信息,点击“确定”提交表单数据

2))页面直接跳转到 http://localhost:8080/web03/list

 3)TCP/IP Monitor 显示
