[Java][Web] Servlet中转发和重定向比较
2024-08-24 05:26:05
Servlet中页面跳转的两种方式
请求转发
使用requestDispatcher对象
request.getRequestDispatcher("path").forward(request, response);
使用JSP动作元素
<jsp:forward page="/">
请求重定向
使用response的sendRedirect方法
response.sendRedirect("path");
请求转发与请求重定向的区别
- 转发是在服务器内部完成,是服务器内部的跳转;重定向是在客户端完成,是客户端的跳转。
RequestDispatcher.forward方法在服务器内部请求转发给另外一个资源,浏览器只知道发出去了请求并得到结果,但不知道请求在服务器内部的转发。
HttpServletResponse.sendRedirect方法是服务端接收了客户端的请求,并返回给客户端结果,这个结果是告诉客户端去请求另外一个资源,并且当前会话关闭,因此客户端会跳转到另外一个解面。
- 转发地址栏不会改变;重定向地址栏会改变。
- 由于转发是在服务器内部进行的,因此转发只能转发给同一个WEB项目范围内的资源;而重定向可以指定任何地方。
- 由于转发是在服务器内部进行,转发前后服务器内部共享同一个request和response对象;而重定向前后分别对应不同的request和response对象。
最新文章
- sp_executeSql 用法
- C#中隐藏(new)、方法重写(override)、重载(overload)的区别
- Nginx配置文件说明
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(一) 之 基层数据搭建,让数据活起来(数据获取)
- 【翻译四】java-并发之线程暂停
- ☆☆配置NDK环境
- hdu 2594 Simpsons’ Hidden Talents KMP
- robotframework笔记14
- armeabi,armeabi-v7a ,x86 和mips 都是什么?
- A标签执行JS脚本
- canvas绘制简单小铅笔
- 9个Java初始化和回收的面试题
- 关闭iOS的自动更新
- 折腾slidingmenu
- linux上安装mysql及简单的使用
- MyBatis Generator配置示例
- MySQL数据库学习02: SELECT语句
- Android轶事之View要去大保健?View大小自己决定?
- MySQL8的注意点
- Java编程的逻辑 (79) - 方便的CompletionService