客户端跳转时用HttPservletResopse对象的sendRedirect函数实现,服务器端跳转是使用RequestDispather对象的forward方法实现的。这两者之间的区别主要体现在三个方面:

1. 使用服务器端跳转时,客户浏览器的地址栏并不会显示目标地址的URL,而是用客户端跳转时,地址栏当中会显示目标资源的URL;

2. 服务器端跳转是由客户端发送一个请求,请求一个服务器资源——如JSP和Servlet——,这个资源又将请求转到另一个服务器资源,然后再给客户端发送一个响应,也就是说服务器端跳转是客户端发送一次请求,服务器端给出一次响应;而客户端跳转的流程则不同。客户端同样是发送一个请求给服务器端资源,这个服务器资源会首先给客户端一个响应,客户端再根据这个响应当中所包含的地址,再次向服务器端发送一个请求,也就是说客户端跳转是两次请求,两次响应;

3. 在进行客户端跳转和服务器端跳转时,都需要指定目标资源的URL,如果这个路径以“”开始。在客户端跳转当中“”代表的是应用服务器根目录,而在服务器端跳转当中代表的是应用程序根目录。

page = 页面级别(任何跳转,pageContext的attribute都会丢失)

request = 请求级别(与服务器端跳转配合使用,request的attribute不会丢失)

session = 会话级别(客户端跳转(服务器端跳转也可,但是客户端跳转更加突出了session的作用范围),用户注销登录或者关闭浏览器后session的attribute会丢失)

application = 应用级别(服务器关闭后application的attribute会丢失)

客户端跳转:服务器端将请求结果返回给客户端,客户端向服务器发出另一次请求。在客户端跳转过程中是两次不同的请求。在地址栏中显示的是最后一次请求地址。

客户端跳转可以进行站外跳转。

1、链接跳转:<a href=””></a>

2、表单提交

3、Response.sendRedirect(“3.jsp”);

4、<mata http-equiv=”refresh”, content=”3;2.jsp”/>

5、response.setHeader(“refresh”,” 3;2.jsp”);

6、客户端跳转“/”代表服务器跟路径webapps

服务器端跳转(容器内跳转):能够自动的在服务器内部进行跳转,这种跳转对用户来说是透明的。两次跳转时同一个request,在地址栏中显示的事第一次页面地址。

只能进行站点内跳转。

1、<jsp:forward page=””/>

2、pageContext.forward();

3、 request.getRequestDispatcher("1.jsp").forward(request,response);

3、服务器端跳转“/”代表站点根路径

客户端跳转与服务器跳转的区别相关推荐

  1. Nginx配置实例-反向代理实现浏览器请求Nginx跳转到服务器某页面

    场景 Ubuntu Server 16.04 LTS上怎样安装下载安装Nginx并启动: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detai ...

  2. JAVA 客户端跳转与服务器端跳转 get与post

    虽然说get 与post 问题很老套了,但是作为web 开发人员来说对于这个的理解确实很有必要,其实说到get 和post,还可以有doGet 与doPost 和客户端跳转与服务端跳转的区别: GET ...

  3. java下载文件跳转页面_java servlet笔记:设置编码集、文件下载和两种服务器跳转-java下载文件...

    java笔记 一设置编码集: 设置请求的编码: request.setCharacterEncoding(服务器编码) 在代码中也就是这样: 本身这个语法是对请求实体进行设置编码,针对于post有效, ...

  4. jsp超链接中怎么跳转页面跳转_JSP页面跳转方法小结

    实现JSP页面跳转,有如下几种方式: n        使用href超链接标记              (客户端跳转) n        使用JavaScript                   ...

  5. html向服务器发送请求有哪些方法,HTTP协议客户端是如何向服务器发送请求

    一.HTTP协议解读 HTTP协议:超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议. 所有的HTML文件都必须遵守这个标准.设计HTTP最 ...

  6. java jsp 跳转_JSP页面跳转方法大全

    先来介绍一下在服务端JSP脚本中跳转页面的几种方法: 1. response.sendRedirct("跳转到页面"); 该方法通过修改HTTP协议的HEADER部分,对浏览器下达 ...

  7. Http协议3XX重定向介绍及301跳转和302跳转应用场景

    一 总体介绍Http协议中的3XX都是重定向(Redirection),在Http 1.1的rfc中介绍了300-307总共7个,它们分别是:300 Multiple Choices301 Moved ...

  8. java跳转到jsp_Servlet跳转到jsp页面的几种方法

    1.sendRedirect方式 sendRedirect("/a.jsp"); 可以将页面跳转到任何路径,不局限于web应用中,跳转的过程中url地址变化,无法使用request ...

  9. 如何优雅的实现界面跳转 之 统跳协议 - DarwinNativeRouter

    PS 感谢大家的关注,由于我本想开源4个库,除了router, 另外三个分别是native dispatcher, web dispatcher 和 react dispatcher , 所以rout ...

最新文章

  1. 分布式团队面临的五大问题及解决办法
  2. 拉格朗日乘子法 KKT条件
  3. aqs java_Java并发之AQS详解
  4. 40岁后学编程(1)
  5. react-native run-android报错的原因,license问题
  6. Attachment multiple read API - performance with regular expression
  7. 面向对象设计原则-Principles and Patterns读书笔记三
  8. 5G常见缩略语大全!
  9. 【Flink】Flink 1.12.2 TaskSlotTable
  10. 西瓜书+实战+吴恩达机器学习(二)机器学习基础(偏差、方差、调试模型技巧)
  11. 美国3月通胀见顶了吗?
  12. 《Python 100例》练习,基于Python 3.5做了一遍
  13. android 京东平板布局,京东商城上线Android Pad客户端 完美布局移动终端
  14. 如何创建一个网站?初学者的分步指南
  15. 【Oracle】导入/导出DMP文件
  16. 【BLE MESH】PB-ADV入网详解
  17. python操作ymal文件之PyYAML库的使用
  18. 流体力学——流体动力学
  19. 如何用C++ 写Python模块扩展(一)
  20. TensorFlow2.0教程-keras 函数api

热门文章

  1. mysql慢查询优化方案
  2. RocketMQ高性能通信实现机制源码精读
  3. 详谈java类和对象的生命周期
  4. KVM克隆CentOS6虚拟机后无法启动
  5. http请求前后监听工具
  6. 入门微信小程序(含实战) [第九篇] -- 下拉刷新和上拉加载
  7. AbstractQueuedSynchronizer 源码分析(共享锁)
  8. android之WIFI小车编程详述
  9. Delphi IOS (二)
  10. JS操作保存cookie(转载他人)