请求转发、请求重定向与页面跳转问题
请求转发
请求转发是服务器行为,即用户向服务器发送了一次http请求,该请求可能会经过多个信息资源处理以后返回给用户,各个信息资源使用请求转发机制互相转发请求,从用户的感官上来看,是感觉不到请求转发的。
请求转发的关键点:
- 从第一次发送请求到最后一次发送请求的过程中,web容器只创建一次request和response对象,新的页面继续处理同一个请求。
- 其本质是服务器将request对象在页面之间进行了相互的传递。
- 可以共用request对象信息。
- 服务器内部进行的转发
- 只有一次请求
- 地址栏不会发生变化
- 必须是在同一台服务器下完成
代码的实现:
//获取请求转发器
RequestDispatcher dispatcher = req.getRequestDispatcher("/myservlet04.do");
//请求转发
dispatcher.forward(req, resp);
请求重定向:
请求是客户端行为(客户端跳转)。服务器端在响应第一次请求的时候,让浏览器再向另外一个URL发出请求,从而达到转发的目的。它本质上是两次HTTP请求,对应两个request对象。
几个关键问题
- 有两次请求
- 地址栏会发生改变
- HttpServletRequest不能可以在这两次请求中共享数据
- 可以共享context,session域的数据
- 可以在不同服务器下完成
代码实现
- 方式一:设置响应头
resp.setStatus(302);
resp.setHeader("Location", "/myservlet04.do");
- 方式二:使用servlet提供的api
resp.sendRedirect("myservlet04.do")
转发与重定向的区别
- 转发在服务器端完成的;重定向是在客户端完成的
- 转发的速度快;重定向速度慢
- 转发的是同一次请求;重定向是两次不同请求
- 转发地址栏没有变化;重定向地址栏有变化
- 转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成
页面跳转问题
方式一:javascript中跳转页面
window.location.href="http://localhost:8080/index.html";
方式二:使用Html中标签来定义页面的元信息
<!-- 5秒钟后跳转到指定页面 -->
<meta http-equiv="refresh" content="5;url=http://www.baidu.com"/>
方式三:请求转发的方式
//获取请求转发器
RequestDispatcher dispatcher = req.getRequestDispatcher("/a=index.html");
//请求转发
dispatcher.forward(req, resp);
方式四:重定向方式
resp.sendRedirect("/a.html")
ajax跳转页面
在success:
$(window).attr("location","index.html");
请求转发、请求重定向与页面跳转问题相关推荐
- 【JavaWeb】Response请求转发与重定向辨析
请求转发与重定向对比 辨析 请求转发只有一次请求.一次响应,是在服务端内部跳转 重定向有两次请求.两次响应:将结果返回给客户端,让客户端重新发起一次跳转 请求转发的登陆界面实现 login.jsp & ...
- 请求转发和重定向的区别_WEB之重定向和请求转发的区别
一次重定向的过程 我的代码里面已经写好了,redirectAndFoward.jsp页面上有一个表单,表单重定向到redirectAndFowardTarget.jsp,那么这一次的重定向过程为: 1 ...
- 请求转发和重定向的区别以及什么时候使用
请求转发和重定向的区别以及什么时候使用 转发过程(不改变网址) 客户浏览器发送http请求-->web服务器接受此请求-->调用内部的一个方法在容器内部完成请求处理和转发动作-->将 ...
- 请求转发和重定向的理解和区别
请求转发(forward) 一个web资源接收到客户端请求后,通知浏览器去调用另外一个web资源进行处理,称之为请求转发. 转发过程:客户浏览器发送http请求---->web服务器接受此请求- ...
- Java 请求转发与重定向
二者区别: 请求转发不会改变URL(地址值),而重定向则会改变 实现: 请求转发 request.getRequestDispatcher("/Update.jsp").forwa ...
- 【Java web】请求转发响应重定向
文章目录 简介 请求转发 响应重定向 使用时机 简介 请求转发和响应重定向是Java web中两种资源跳转的方式.简单来说,对于完成一次请求需要许多特定的资源(如已经写好的页面或另一个Servlet) ...
- 015_请求转发和重定向
一. 重定向和转发工程 1. 新建一个SendRedirectForward的Web工程 2. 在WebContent下新建index.html和success.html 3. 编写index.htm ...
- 浅析请求转发和重定向
浅析请求转发和重定向 1.请求转发 request.getRequestDispather("/indexServlet").forword(request,response); ...
- 【Servlet】请求转发、重定向、Cookie使用之三天自动登陆
三天自动登陆项目源码:GitHub地址-LoginSystem JDBC 手写SORM框架 手写Servlet 开发环境:Eclipse 一.请求乱码问题解决 // 设置请求.响应编码格式req.se ...
最新文章
- BlueTooth: 蓝牙基础知识进阶——链路控制操作
- 表单的几个基本常用功能
- Spark+hadoop+mllib及相关概念与操作笔记
- DropdownList绑定的两种方法
- Mach-O 的动态链接(Lazy Bind 机制)
- 简单电商购物过程(续1)
- SAP财务管控 财务总监背后的“管理大师” PDF下载
- [P2387魔法森林
- php7性能原理,php7卓越性能背后的原理有哪些?
- python request post 数组_[pve][python]用python3获取pve状态信息
- linux缺少文件操作数,linux 文件的atime,ctime,mtime查看与修改
- Pandas使用小技巧
- 基于MATLAB的图像压缩感知设计(含源文件)
- Mysql常见的引擎
- vue项目中使用词云_如何在vue项目中使用高拍仪
- Oracle官方网站下载地址
- 详解ARM的AMBA设备中的DMA设备(Linux驱动之DMA)
- OSPF-LSA详解
- 一个较为感人的升学故事
- 3dmax文件保存后超大怎么缩小?想学3D建模,还没软件速来领取