spring controller中默认转发、forward转发、redirect转发之间的区别
- 默认转发
@RequestMapping("/123")
public String test(HttpSession session) {
System.out.println("123");
return "456";
}
服务器在得到/123的请求后调用test方法,输出123然后寻找456.jsp(这里已经配置了视图,全路径为/WEB-INF/jsp/456.jsp)文件
- forward转发
@RequestMapping("/123")
public String test(HttpSession session) {
System.out.println("123");
return "forward:456";
}
@RequestMapping("/456")
public String test1(HttpSession session) {
System.out.println("456");
return "456";
}
服务器得到/123的请求后调用test方法,输出123,但是与默认转发不同的是,forward转发会继续寻找/456的解析而不是寻找456.jsp文件,
如果test1方法不存在则会报404的错误,即使456.jsp文件存在
- redirect转发
@RequestMapping("/123")
public String test(HttpSession session, HttpServletRequest hr) {
System.out.println("123");
hr.setAttribute("test", "123");
session.setAttribute("session", 123);
return "redirect:456";
}
@RequestMapping("/456")
public String test1(HttpSession session, HttpServletRequest hr) {
System.out.println("456");
System.out.println(hr.getAttribute("123"));
System.out.println(session.getAttribute("session"));
return "456";
}
效果和forward转发差不多,但是浏览器的地址会被修改为/456结尾,还有redirect后原来的request中的内容会丢失,session中的内容不会丢失,而forward都不会
spring controller中默认转发、forward转发、redirect转发之间的区别的更多相关文章
- Labview中引用,属性节点,局部变量之间的区别
Labview中引用,属性节点,局部变量之间的区别 在Labview中我们经常会碰到这样几个概念,那就是控件的引用,属性节点以及局部变量,他们之间到底有哪些区别呢? 首先谈 ...
- spring controller中@Value取不到applicationContext.xml中加载配置文件的问题
原因还未查证: http://sunjun041640.blog.163.com/blog/static/256268322014127113844746/ 在使用spring mvc时,实际上是两个 ...
- 请求转发(forward)和请求包含(include)的区别?
请求包含的例子 第一个Servlet (DispatcherServlet) @Override protected void doGet(HttpServletRequest req, HttpSe ...
- 【学习总结】iOS中NSNotification、delegate、KVO三者之间的区别与联系?
在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信.在IOS应用不断的出现三种模式来实现这种通信: 1.委托delegation: 2.通 ...
- iOS中NSNotification、delegate、KVO三者之间的区别与联系?
前面分别讲了delegate.notification和KVO的实现原理,以及实际使用步骤,我们心中不禁有个疑问,他们的功能比较类似,那么在实际的编程中,如何选择这些方式呢? 在网上看到一个博客上详细 ...
- Java-Java中System.arraycopy() 和 Arrays.copyOf()两者之间的区别
如果我们想拷贝一个数组,我们可能会使用System.arraycopy()或者Arrays.copyof()两种方式.在这里,我们将使用一个比较简单的示例来阐述两者之间的区别. 1.示例代码: Sys ...
- jquery中使元素显示和隐藏方法之间的区别
在实际的项目开发中,要使一个元素隐藏的方法有很多,比如css的多种属性和jquery的多种方法,虽然他们的作用都是使元素不可见,但是各个方法实现的原理是不一样的.下面主要介绍jquery各个元素隐藏方 ...
- Flask中g对象,以及g,session,flash之间的区别
一.g对象的使用 专门用来存储用户信息的g对象,g的全称的为global g对象在一次请求中的所有的代码的地方,都是可以使用的 g对象的使用: 设置:g.变量名= 变量值 获取:g.name 注意:g ...
- mybatis在spring(Controller) 中的事务配置问题
这两天一直在折腾一个小工具,非常简单的移动端webapp. 用的是jquery mobile + ssm. 写的差不多的时候,想到解决事务问题,本来以为非常简单,只要在配置文件中加上相应的mybati ...
随机推荐
- itchat 爬了爬自己的微信通讯录
参考 一件有趣的事: 爬了爬自己的微信朋友 忘记从谁那里看到的了,俺也来试试 首先在annconda prompt里面安装了itchat包 pip install itchat 目前对python这里 ...
- Excel数据源增加时,渗透表如何刷新?
使用Excel制作渗透表的时候在选择数据源范围的时候不要选择有限区域!!!最好圈定列范围 问题:制作渗透表是,在选择数据区域时使用[Ctrl + A]或者选定有限的数据区域,从而导致当数据源增加时,渗 ...
- (填坑系列) 用aio写server与client进行通信的坑
最近闲来无事,就估摸着自己写个“服务注册中心”来玩,当然因为是个人写的,所以一般都是简洁版本. 代码地址在:https://gitee.com/zhxs_code/my-service-registe ...
- [AtCoder Code Festival 2017 QualB D/At3575] 101 to 010 - dp
[Atcoder Code Festival 2017 QualB/At3575] 101 to 010 有一个01序列,每次可以选出一个101,使其变成010,问最优策略下能操作几次? 考虑像 11 ...
- Qtree3 - 树链剖分
打完以后才发现写复杂了……算了懒得改了 #include <bits/stdc++.h> using namespace std; ],fa[][],size[],wson[],vis[] ...
- idea修改忽视文件产生得bug
为了提交代码方便,在idea中增加了忽视文件选项. 这一修改可把自己坑惨了,更改代码运行代码得时候,连打印都没出来,对照了半天代码 也没发现是哪里得错误,后来想到某次修改代码后class文件并没改变, ...
- VB断点拷贝大文件(WIN7系统需要更改某个API函数,具体我也忘了)
小弟以前租碟在电脑上看VCD,有时候拷贝经典的影片到硬盘上可惜碰到比较粗糙的碟子就很难拷贝过去,因此编了个断点拷贝文件的程序.本程序用于拷贝大文件,并可在旧文件上接着拷贝本程序能在无法读取数据的情况下 ...
- vs2010安装
1.网盘上2010安装包可用,先下载到电脑上,然后找到setup文件,安装即可 2.下载插件,基本的文本对齐,tab键补齐等功能 3.测试hello world程序 4.出现的问题 一个文件夹下有多个 ...
- 操作系统-多用户如何理解(Linux)
单用户.多用户.单任务.多任务,这么多种操作系统容易让人迷糊.其实这种初看你会觉得理解了一点,但其实你仔细研究会发现,多用户到底讲的是什么鬼? 多任务比较简单,就是应用程序都要放置到内存上去给CPU调 ...
- SVN提交时没有写注释
会报错: Error: Commit blocked by pre-commit hook (exit code 1) with output: Error: [Commit failed]: Emp ...