JAVA: getRequestDispatcher()与sendRedirect()的区别_javaweb中的getrequestdispatcher是什么意思-程序员宅基地

技术标签: Java  java  

问题?细谈getRequestDispatcher()与sendRedirect()的区别
首先我们要知道:
(1)request.getRequestDispatcher()是请求转发,前后页面共享一个request ; 这个是在服务端运行的,对浏览器来说是透明的。
(2)response.sendRedirect()是重新定向,前后页面不是一个request。而这个是在浏览器端运行的。
1) redirect 方式
   response.sendRedirect(“/a.jsp”);
  
页面的路径是相对路径。sendRedirect可以将页面跳转到任何页面,不一定局限于本web应用中,如:
  
response.sendRedirect(“URL”);
  
跳转后浏览器地址栏变化。
  
这种方式要传值出去的话,只能在url中带parameter或者放在session中,无法使用request.setAttribute来
传递。所以该方式只适用于无传值跳转
  2) forward方式
   request.getRequestDispatcher(“/路径(可以是jsp路径也可以是servlet)”) .forward(request, response);
如:
request.getRequestDispatcher(“/2.jsp)”) .forward(request, response);
request.getRequestDispatcher(“/servlet/HomeServlet)”) .forward(request, response);
  Servlet页面跳转的路径是相对路径。forward方式只能跳转到本web应用中的页面上。
  跳转后浏览器地址栏不会变化。
  使用这种方式跳转,传值可以使用三种方法:url中带parameter,session,request.setAttribute

这里是原博客

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mmayanshuo/article/details/78557679

智能推荐

Go内置关键字分析(二)_for i, x := range nums-程序员宅基地

文章浏览阅读665次。Go语言25个内置关键字分析(一):https://blog.csdn.net/sinat_24568041/article/details/80904271Go关键字按类型不同做如下区分(注:图片来自网络,若有侵权,请联系删除):2.2引用类型(1) Map作用:用于声明map类型数据 a.Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于..._for i, x := range nums

GD32F103RCT6/GD32F303RCT6(6.2)USART串口库函数介绍(包含DMA库函数)-程序员宅基地

文章浏览阅读699次,点赞6次,收藏10次。GD32教程 单片机 嵌入式 串口 向上代码兼容GD32F303RCT6中使用

宁波大学2013 计算机应用基础 高级c语言程序 练习册答案,计算机应用基础A1-程序员宅基地

文章浏览阅读286次。spContent=软件定义未来,软件实现了用计算机解决真实世界的各种问题。自计算机诞生之日起,人们探索的重点不仅在于建造运算速度更快、处理能力更强的计算机,而且在于开发能让人们更有效使用这种计算设备的各种软件。本课程作为大学阶段的第一门计算机基础课程,主要介绍面向过程的结构化程序设计思想及方法,为你打开软件设计与开发的大门。数字时代呼啸而来,懂得程序设计,就能更好的在数字海洋中自由遨游。本课程面..._c语言程序设计孙改平答案

mybatisplus 更新数据时(update updatebyId) 将指定字段的null值更新到数据库_mybatis updatebyid 空值更新入库-程序员宅基地

文章浏览阅读4.1k次,点赞2次,收藏3次。mybatisplus 在封装更新语句时 会默认不更新值为null的字段;有的时候我们需要指定某个字段为null时更新进去又不想去mapper.xml 写update sql于是就有了如图 在对应的字段上面添加 @tableField注解注意 jdbcType 必须要有 不然会报错 无效列类型value 对应的是数据库的字段名另外在update的时候运用此注解 还有以下作用有兴趣的可以多看看源码了解哈..._mybatis updatebyid 空值更新入库

VS2010中ashx文件中代码折叠实现方法(超级有用,终于找到了方法!)_在vs2010.net的.ashx文件中如何把方法中的部分代码折叠起来-程序员宅基地

文章浏览阅读1.8k次。工具 --- 选项 --- 文本编辑器 --- 文件扩展名,只要在右侧添加 ashx ,选中MS-VS C# 保存后_在vs2010.net的.ashx文件中如何把方法中的部分代码折叠起来

c++ 构造函数详细介绍-程序员宅基地

文章浏览阅读1.1k次,点赞33次,收藏17次。c++构造函数详细介绍

随便推点

从一个class文件深入理解Class文件结构-程序员宅基地

文章浏览阅读382次。深入理解Class文件结构概述我们都知道编写的Java的源码会先编译成Class文件,java虚拟机再将Class文件解释编译成对应平台的机器指令,所以能够解析Class文件的数据结构是非常有必要的。先编写一段java源码,定义一个类并实现一个接口,类内部定义了一个成员变量、一个类变量和一个sum方法。package com.changyy.jvm;public class ClassTest implements IClassTest { private int n = 10_class文件结构

二叉树及先序遍历二叉树,中序遍历二叉树,后序遍历二叉树_1. 输入二叉树结点数,先序遍历序列,中序遍历序列2.输出该二叉树的后序遍历序-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏17次。1.二叉树的常用性质<1>.在二叉树的第i层上最多有2 i-1 个节点 。(i>=1)<2>.二叉树中如果深度为k(有k层),那么最多有2k-1个节点。(k>=1)<3>.若二叉树按照从上到下从左到右依次编号,则若某节点编号为k,则其左右子树根节点编号分别为2k和2k+1;<4>.二叉树分类:满二叉树,完全二叉树..._1. 输入二叉树结点数,先序遍历序列,中序遍历序列2.输出该二叉树的后序遍历序

微软cl编译器的简单使用_cl编译器tiny模式-程序员宅基地

文章浏览阅读562次。cl的位置:开始 –> 所有程序 -> Microsoft Visual Studio ->Visual Studio Tools -> Developer Command Prompt编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。注意,所有编译器选项都区分大小写。若要编译但不链接,请使用/_cl编译器tiny模式

设置相机水印字体的大小、位置_平板拍照的水印字体大小-程序员宅基地

文章浏览阅读7.9k次。需求是根据保存的照片的不同分辨率设置不同大小的文字水印,文字需要黑色描边,白底色,位于照片右下角水印描边是非常重要的,两种区别明显的颜色(示例代码中使用的就是黑色和白色)可以有效的提升在不同背景下水印的可识别度。解决方法是获取照片的尺寸,然后根据照片的尺寸进行文字大小的设置;并利用canvas.drawText(test,x,y,paint) 设置文字绘制的位置。根据Bitmap的尺..._平板拍照的水印字体大小

C++ 中的虚:虚基类和虚继承_6-3 沙发床-虚基类-程序员宅基地

文章浏览阅读415次。C++ 中的虚:虚基类和虚继承一、问题由来以沙发床为例:沙发床继承了 沙发 和 床。#include <iostream>#include<string>using namespace std;class Sofa{public: Sofa(float pe = .0, string cr = "black") :price_(pe), color_..._6-3 沙发床-虚基类

UVM——RAL模型基础之一(相关层次、设计流程)_uvm ral-程序员宅基地

文章浏览阅读1.2w次,点赞36次,收藏244次。文章目录一、RAL设计流程二、RAL模型层次相关类三、RAL模型设计实现3.1.利用RAL generator(ralgen)将寄存器描述性文档生成UVM寄存器模型3.1.1.创建寄存器模型类(ralgen自动生成)3.1.2.将寄存器放入register block容器中,并加入到对应的Address Map3.2.创建RAL适配器(adapter)3.3.验证环境中实例化RAL模型并建立连接3..._uvm ral

推荐文章

热门文章

相关标签