JSP中的重定向和转发的区别
转发:一个web组件将未完成的处理转换交给另一个web组件继续做(web组件指的是jsp或者Servlet)
Servlet获取数据以后转发给jsp,由jsp将数据以合理的方式展现出来 。
当客户端发送请求时由Servlet做业务处理调用java类然后转发给jsp,由jsp渲染响应页面 。
文章插图
当客户端发请求到后端(request) , 后端作出相应(response) , 如果后端的处理逻辑(在没有登陆的情况下就想看购物车就得重定向到登陆页面)为重定向 , 发送302状态码和location消息头给前端,然后浏览器就会用该链接重新访问服务器 这时候的request是新的,服务器的response也是新的(request和response只存活于一次请求和一次响应之间) 。
文章插图
如何转发?
1.将数据绑定到request对象上 。
request.setAttribute(String name,Object obj); //map.put(name,obj)
2.获得转发器
RequestDispatcher rd=request.getRequestDispatcher(String uri); //uri是转发的地址 , 通常是一个jsp 。
3.转发
rd.forward(request,response);
文章插图
文章插图
转发的特点:
a.转发之后 , 浏览器地址不变 。
b.转发的地址有限,要求属于同一个web应用
转发与重定向的区别
a.能否共享request?
转发可以,而重定向不行(上面由说明 当容器收到请求,会立即创建request和response,当响应发送完毕后 , 容器会立即销毁)
这两个对象 。 转发是一次请求而重定向是两次请求 。
b.浏览器地址栏的变化?
转发没有变化 , 重定想会发生变化 。
c.地址有无限制?
【JSP中的重定向和转发的区别】 转发有限制 (要求属于同一个web应用),重定向没有任何限制 。
- 脸上|那个被1亿锦鲤砸中的“信小呆”:失去工作后,脸上已无纯真笑容
- 夹缝|“互联网卖菜”背后:夹缝中的菜贩与巨头们的垄断
- 骁龙865|5G手机中的性能怪兽,256+120W闪充,比iPhone12值得买
- RFID在冷链物流中的作用-RFID冷链资产管理解决方案
- 成员|千元机中的实力派再添新成员,三部千元机,一部更比一部强!
- Kotlin集合vs Kotlin序列与Java流
- 金融市场中的NLP——情感分析
- 二叉树:求搜索树中的众数
- USB接口中的皇帝!浅析雷电Thunderbolt的前生今世
- 面试官:聊聊 etcd 中的 Raft 吧