Servlet中页面跳转的两种方式

请求转发

使用requestDispatcher对象

request.getRequestDispatcher("path").forward(request, response);

使用JSP动作元素

<jsp:forward page="/">

请求重定向

使用response的sendRedirect方法

response.sendRedirect("path");

请求转发与请求重定向的区别

  1. 转发是在服务器内部完成,是服务器内部的跳转;重定向是在客户端完成,是客户端的跳转。
RequestDispatcher.forward方法在服务器内部请求转发给另外一个资源,浏览器只知道发出去了请求并得到结果,但不知道请求在服务器内部的转发。
HttpServletResponse.sendRedirect方法是服务端接收了客户端的请求,并返回给客户端结果,这个结果是告诉客户端去请求另外一个资源,并且当前会话关闭,因此客户端会跳转到另外一个解面。
  1. 转发地址栏不会改变;重定向地址栏会改变。
  2. 由于转发是在服务器内部进行的,因此转发只能转发给同一个WEB项目范围内的资源;而重定向可以指定任何地方。
  3. 由于转发是在服务器内部进行,转发前后服务器内部共享同一个request和response对象;而重定向前后分别对应不同的request和response对象。

最新文章

  1. sp_executeSql 用法
  2. C#中隐藏(new)、方法重写(override)、重载(overload)的区别
  3. Nginx配置文件说明
  4. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(一) 之 基层数据搭建,让数据活起来(数据获取)
  5. 【翻译四】java-并发之线程暂停
  6. ☆☆配置NDK环境
  7. hdu 2594 Simpsons’ Hidden Talents KMP
  8. robotframework笔记14
  9. armeabi,armeabi-v7a ,x86 和mips 都是什么?
  10. A标签执行JS脚本
  11. canvas绘制简单小铅笔
  12. 9个Java初始化和回收的面试题
  13. 关闭iOS的自动更新
  14. 折腾slidingmenu
  15. linux上安装mysql及简单的使用
  16. MyBatis Generator配置示例
  17. MySQL数据库学习02: SELECT语句
  18. Android轶事之View要去大保健?View大小自己决定?
  19. MySQL8的注意点
  20. Java编程的逻辑 (79) - 方便的CompletionService

热门文章

  1. 洛谷P1584 魔杖
  2. WPF架构分析
  3. C# 线程的暂停和恢复的 实现
  4. 《TCP/IP详解卷一:协议》数据链路层(一)
  5. ie下使用文本编辑器导致input文本框无法聚焦的问题原因
  6. 基于Qt Gui的Led控制显示程序
  7. java代码优化(1)---
  8. angular.foreach 格式
  9. 阿里云服务器,无法通过公网ip访问实例
  10. 清除@SessionAttributes 网站实现退出登录