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 ...
随机推荐
- babel plugin
a = () => {}, // Support for the experimental syntax 'classProperties' isn't currently enabled ya ...
- JavaDay2(中)
Java循环与分支练习 习题1: 输出1~100内前5个可以被3整除的数. public class Day2_Test1 { //输出1~100内前5个可以被3整除的数. public static ...
- 关于Euler-Poisson积分的几种解法
来源:https://www.cnblogs.com/Renascence-5/p/5432211.html 方法1:因为积分值只与被积函数和积分域有关,与积分变量无关,所以\[I^{2}=\left ...
- SVM-支持向量机(二)非线性SVM分类
非线性SVM分类 尽管SVM分类器非常高效,并且在很多场景下都非常实用.但是很多数据集并不是可以线性可分的.一个处理非线性数据集的方法是增加更多的特征,例如多项式特征.在某些情况下,这样可以让数据集变 ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛---Find Integer!--hdu6441
问题传送门:https://vjudge.net/contest/320779#problem/D 介绍一个名词:奇偶数列法则 Key part: #include<iostream> # ...
- Python标准库之shutil模块
高级的文件.文件夹.压缩包处理模块. 文件复制 copyfileobj 将文件类对象 fsrc 的内容拷贝到文件类对象 fdst. shutil.copyfileobj(fsrc, fdst[, le ...
- StackExchange.Redis 之 SortedSet 类型示例
1,增加操作 RedisCacheHelper.Instance.ZSortadd(); RedisCacheHelper.Instance.ZSortadd(); RedisCacheHelper. ...
- ubuntu系统定时运行 crontab
1,crontab是个啥? ubuntu系统自带cron工具,cron是一个系统上的定时工具,用它的好处在于,不同的程序可以用同一个计时器,这样就省得不同程序各自sleep了,另外它还支持比较多的个性 ...
- 棋盘划分问题中4的k次方减一是三的倍数
1.数学归纳法(万物皆可数学归纳) ①当n=1时:4-1=3(是三的倍数) ②假设n-1成立证明n成立:4n-1=4n-1*(4-1)+4n-1-1 =3*4n-1+(4n-1-1) 所以4n-1%3 ...
- C++——类与对象
1.抽象: 是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程. 1.1 先注意问题的本质描述,其次是实现过程和细节: 1.2 数据抽象:描述某类对象的属性或状态(对象相互区别的物 ...