文章目录

  • 简介
  • 请求转发
  • 响应重定向
  • 使用时机

简介

请求转发和响应重定向是Java web中两种资源跳转的方式。简单来说,对于完成一次请求需要许多特定的资源(如已经写好的页面或另一个Servlet),采取请求转发或响应重定向的方式来跳转并获取资源。

请求转发

请求转发(forward):一种服务器内部的资源跳转方式。

请求转发代码:

@WebServlet("/reqdemo1")
public class RequestDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 请求转发前向request对象中存入需要共享的数据req.setAttribute("mesg", "hello");// 请求转发,使用forword携带资源转发req.getRequestDispatcher("/reqdemo2").forward(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doGet(req, resp);}
}

请求转发特点:

1.浏览器地址栏路径不发生变化
2.只能转发当前服务器内部资源
3.可以在转发的资源间使用request对象共享数据

响应重定向

响应重定向(Redirect):一种资源跳转方式。

响应重定向代码:

@WebServlet("/respdemo1")
public class respdemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 响应重定向// 注意:第二次请求是由浏览器自动发出的,浏览器使用路径需要加虚拟路径 使用getCotextPath()动态获取虚拟路径resp.sendRedirect(req.getContextPath() + "/respdemo2");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doGet(req,resp);}
}

请求转发特点:

1.浏览器地址路径栏发生变化
2.可以重定向到任意位置的资源
3.重定向后是两次不同的请求,不能使用request对象共享资源

使用时机

从获取资源是否强大来看,响应重定向可以访问服务器以外的资源,而请求转发只能访问服务器内部资源;但是请求转发可以在资源之间数据共享。

因此,推荐服务器内部能够解决的问题优先使用请求转发,若服务器内部不能解决再使用响应重定向。即大事化小原则。

【Java web】请求转发响应重定向相关推荐

  1. Java Web 请求转发与请求重定向

    Java Web 请求转发与请求重定向 请求转发 服务器行为,即用户向服务器发送了一次http请求,该请求可能会经过多个信息资源处理以后菜返回给用户,各个信息资源使用请求转发机制互相转发请求,但是用户 ...

  2. java web请求转发_Javaweb请求转发及重定向实现详解

    请求转发:在同一个controller将请求转发到另一个请求映射,请求地址不会发生改变 //请求转发 @RequestMapping("/testFoeward") //@Resp ...

  3. java中请求转发与重定向_JavaEE进阶 请求转发与请求重定向

    JavaEE进阶 请求转发与请求重定向 本篇JavaEE进阶教程将为大家讲解JavaEE进阶编程的知识点,看完这篇文章会让你对JavaEE进阶编程的知识点有更加清晰的理解和运用.在转发的过程中,可以把 ...

  4. Java 请求转发与重定向

    二者区别: 请求转发不会改变URL(地址值),而重定向则会改变 实现: 请求转发 request.getRequestDispatcher("/Update.jsp").forwa ...

  5. java 根据客户端重定向_Java Web笔记 - 转发与重定向的区别与在FireBug客户端的表现...

    1.转发: RequestDispatcher的forward(request, response)称为请求转发. request的getRequestDispatcher和getRequestDis ...

  6. 【JavaWeb】一文Servlet全解:继承关系、生命周期、容器和请求转发与重定向等

    文章目录 一.Servlet 概述 二.Servlet HelloWorld 三.Servlet 继承关系 四.Servlet 生命周期 五.ServletConfig 和 ServletContex ...

  7. 请求转发与重定向的区别和执行流程

    请求转发与重定向的区别和执行流程 文章目录 请求转发与重定向的区别和执行流程 1 请求转发与重定向区别 2 现实生活的例子 2.1 重定向 2.2 请求转发 3 重定向-流程图.代码.结果 3.1 流 ...

  8. 【Servlet】请求转发与重定向

    重定向 重定向是指由原请求地址重新定位到某个新地址,原有的request请求失效,客户端看到的是新的request请求返回的响应结果,客户端浏览器地址栏变为新请求地址. 一次重定向过程存在两次请求和两 ...

  9. SpringMVC第二讲——传参、修改端口、请求转发、重定向、跨服务器文件上传

    传参 在地址栏?代表开始传参,用&来分隔变量 /*** 请求参数-简单传参* @param name* @param age* @return*/@RequestMapping("t ...

最新文章

  1. 第九章 组合模型在信贷风控中的应用
  2. 机器学习实战_09_树回归_源代码错误修正
  3. c#中使用消息循环机制发送接收字符串的方法和数据类型转换
  4. Linux中Vim基本用法
  5. php 页面上显示xls文档,phpExcel输出xls文档显示乱码的解决方法
  6. 如何批量修改AD用户的Email属性
  7. NGFF(M.2) m.2中Bkey接口Mkey接口有什么不同
  8. 联想thinkpadE14 vm蓝屏问题解决
  9. 本地音乐上传到网易音乐云盘上
  10. 计算机论文周记200字通用,周记200字范文大全(通用15篇)
  11. WPF学习系列 游戏-选张图片做成9宫格拼图
  12. win2008r2用户账户控制什么意思_养老保险统筹账户是什么意思?有什么用?
  13. 太极限了,JDK的这个BUG都能被我踩到!
  14. Linux 下录屏制作 GIF 图片
  15. char* 和 char[]区别
  16. iOS 关于音频开发
  17. 中科大计算机学院操作系统真题(www.itbuluoge.com)
  18. 《TP5.0学习笔记---配置篇》
  19. kicad 自动生成封装库_【工具】KiCad版本嘉立创SMT贴片库及问题说明
  20. Rosetta基础1:centos8安装Rosetta

热门文章

  1. 从开一家餐馆告诉你:如何用战略思维思考问题?
  2. 王者荣耀s20服务器维护,王者荣耀S20新赛季这项内容作出了巨大调整,你还不知道?...
  3. 在王者荣耀角度下分析面向对象程序设计B中23种设计模式之装饰模式
  4. Python神经网络编程(TR) (3)
  5. ram 不同时钟读写(仿真已过,没试过板子)
  6. 显存不够,框架来凑:两行代码显存翻倍,2080Ti也能当V100来用
  7. java开源社交新零售_实体店转型之路:3招玩转社交新零售
  8. 学习区块链(四)--创建僵尸军团Ⅰ
  9. Slicer学习笔记(三十七)slicer增加分割节点并显示
  10. Rocket MQ(二)消息详解