SpringMVC框架——转发与重定向
网上摘取一段大神总结的转发与重定向的区别,如下:
- 转发(服务端行为)
- 形式:request.getRequestDispatcher().forward(request,response)
转发在服务器端发挥作用,通过forward()方法提交信息在多个页面之间进行传递;
地址栏不会改变;
转发只能转发到当前Web应用内的资源;
在转发过程中,可以将数据保存到 request 域对象中去;
转发只有一次请求;
转发是服务器端行为
2. 转发过程
客户端浏览器发送http;
web浏览器接受请求;
调用内部的一个方法在容器内部完成请求处理和转发动作;
需注意的是:转发的路径必须是同一个web容器下的url。在客户端浏览器路径栏显示的仍然是第一次访问的路径。转发行为是浏览器只做了一次访问请求。
- 重定向(客户端行为)
1. 形式:response.sendRedirect("")
重定向地址栏会改变;
重定向可以跳转到当前web应用,甚至是外部域名网站;
不能在重定向的过程中,将数据保存到 request 域对象中;
2. 重定向过程
客户端发送http请求;
web服务器接收后,发送302状态吗响应以及新的location给客户端浏览器;
客户端浏览器发现是302响应,则自动发送一个http请求,请求url为重定向的地址,响应的服务器根据此请求寻找资源并发送给客户。
示例:
controller
package com.sunjian.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; /** * @author sunjian * @date 2020/3/17 17:53 */ @Controller public class TestController { /** * 重定向 */ @RequestMapping(value = "/test1") public String testRedirect(){ return "redirect:test.jsp"; } /** * 转发 */ @RequestMapping(value = "/test2") public String testForward(){ return "forward:test.jsp"; } @RequestMapping(value = "/test3") public String test(){ return "test"; } }
JSP
<html> <body> <h2>Hello World!</h2> </body> </html>
重定向
http://localhost:7777/test1
转发
http://localhost:test2
http://localhost:test3
OK.
SpringMVC框架——转发与重定向的更多相关文章
- SpringMVC核心技术---转发和重定向
@Controller public class Mycontroller { //转发 @RequestMapping("/adduser") public String add ...
- SSM-SpringMVC-22:SpringMVC中转发(forward)和重定向(redirect)
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 转发和重定向大家都熟悉,都学到框架了,怎么能不了解转发和重定向呢? 如果有不熟悉的,可以去百度搜几篇博客去看看 ...
- SpringMVC框架02——SpringMVC的Controller详解
1.基于注解的控制器 1.1.@Controller 注解类型 在SpringMVC中使用org.springframework.stereotype.Controller注解类型声明某类的实例是一个 ...
- springMVC之一(页面<--->控制器 互相传值,转发和重定向)
#页面--->控制器1.request:不建议使用2.使用属性传值(建议使用)@RequestParam("name") String username3.使用Bean对象传 ...
- SpringMVC转发和重定向区别!
在servlet中,转发和重定向是由request和response完成的.两者之间的区别请看我之前的文章.那么在springMVC中是如何完成的呢? /**转发**/ @RequestMapping ...
- SpringMVC中使用forward和redirect进行转发和重定向以及重定向时如何传参详解
转自:http://blog.51cto.com/983836259/1877188 2016-11-28 09:45:59 如题所示,在SpringMVC中可以使用forward和redirec ...
- 【drp 12】再识转发和重定向:SpringMVC无法跳转页面
最近再使用SpringMVC进行页面跳转的时候,不知道发生了什么,始终都无法正确跳转.后来问题解决了,发现是对于转发和重定向没有能很好的理解,以此写篇博客,权当做积累了! 声明:本博客的所有代码,均为 ...
- SpringMVC 转发、重定向
转发.重定向到其它业务方法 @org.springframework.stereotype.Controller @RequestMapping("/userController" ...
- SpringMVC Controller之间的重定向和转发
同一个controller之间重定向和转发 ①redirect 在Controller的映射方法中,其返回值改为:return "redirect:XXX"; ②forward 这 ...
随机推荐
- Java如何打印日志
以下为<正确的打日志姿势>学习笔记. 什么时候打日志 1.程序出现问题,只能通过 debug 功能来定位问题,很大程度是日志没打好.良好的系统,通过日志就能进行问题定位. 2.if-els ...
- NSURLSession与NSURLConnection区别
1. 使用现状 NSURLSession是NSURLConnection 的替代者,在2013年苹果全球开发者大会(WWDC2013)随ios7一起发布,是对NSURLConnection进 ...
- 漫说测试 | 研发虐我千百遍,我待bug如初恋
的行业之一他们的运筹帷幄,他们的勾心斗角,只有自己知道.000,但绝对也是最枯燥的行业之一! IT可能是几个最高薪行业之一,但同时也绝对是最辛苦的行业之一!IT业是最需要创新能力的行业之一,但绝对也是 ...
- Java中间件之RMI及实例介绍 · zijian's blog
RMI介绍 远程方法调用(Remote Method Invocation)是Sun公司规定的允许在不同的JAVA虚拟机之间进行对象间通信的一种规范.在RMI中,JVM可以位于一个或多个计算机上, ...
- Dizcuz站点部署-包教会
Dizcuz站点部署-包教会-有需要请联系小编! 小编微信号:wvqusrtg
- C#中使用 正则表达式 替换img中src路径但保留图片名
text = Regex.Replace(text, @"(?i)(?<=<img\b[^>]*?src=\s*(['""]?))([^'"& ...
- js操作复选框
js操作复选框 JavaScript 代码: //复选框全选 $(function () { $("#select_all").click(function () { $(&quo ...
- Nginx之反向代理配置(一)
前文我们聊了下Nginx作为web服务器配置https.日志模块的常用配置.rewrite模块重写用户请求的url,回顾请参考https://www.cnblogs.com/qiuhom-1874/p ...
- Mybatis-Plus代码生成器使用详解
首先创建springboot的项目(创建步骤省略) 创建好项目后要配置maven依赖,附上pom.xml: <?xml version="1.0" encoding=&quo ...
- 简单说 JavaScript中的tostring( ) 与 valueOf( )方法
说明 所有的对象都继承有toString() 和 valueOf() 方法,对象到字符串,对象到数字的转换,会通过调用待转换对象的这两个方法中的一个来完成. 解释 toString( )方法的作用是: ...