学习的博客:http://elf8848.iteye.com/blog/875830/

我项目中所用的版本:4.2.0。博客的时间比较早,11年的,学习的是Spring3 MVC。不知道版本上有没有变化比较大的功能。

spring mvc教程(六)转发、重定向、ajax请求

1.转发和重定向

(1)转发与重定向的区别

http://blog.csdn.net/ya_smile_jy/article/details/50674537

区别一:重定向时浏览器上的网址改变,转发是浏览器上的网址不变

区别二:重定向实际上产生了两次请求,转发只有一次请求。

1 重定向:
2 发送请求 -->服务器运行-->响应请求,返回给浏览器一个新的地址与响应码-->浏览器根据响应码,判定该响应为重定向,自动发送一个新的请求给服务器,请求地址为之前返回的地址  -->服务器运行-->响应请求给浏览器
3 转发:
4 发送请求 -->服务器运行-->进行请求的重新设置,例如通过request.setAttribute(name,value)-->根据转发的地址,获取该地址的网页-->响应请求给浏览器

区别三:重定向时的网址可以是任何网址,转发的网址必须是本站点的网址。

区别四:重定向时以前的request中存放的变量全部失效,并进入一个新的request作用域。转发时以前的request中存放的变量不会失效,就像把两个页面拼到了一起。

(2)用法

addAttribute:传递参数会跟随在URL后面,即为http:/index.do?name=value

addFlashAttribute: 会把该参数值暂时保存于session,待重定向url获取该参数后从session中移除。这里的redirect必须是方法映射路径,jsp无效。你会发现redirect后的jsp页面中b只会出现一次,刷新后b再也不会出现了,这验证了上面说的,b被访问后就会从session中移除。对于重复提交可以使用此来完成。

1 转发:   return "forward:/users/uc";2 带参数拼接url转发:
  attr.addAttribute("param", value);
  return "redirect:/namespace/toController"; 
3 带参数拼接url转发:  attr.addFlashAttribute("name", form.getName());  attr.addFlashAttribute("success", "添加成功!");return "redirect:/index";6 重定向:
  return "redirect:/#/home"; 

示例:

 1     @RequestMapping(value="/users")
 2     @Controller
 3     public class UserController {
 4
 5         @RequestMapping(value="/queryuser",method = RequestMethod.GET)
 6         public String queryuser(Model model) throws Exception {
 7             return "forward:/users/uc";
 8         }
 9
10         @RequestMapping(value="/uc",method = RequestMethod.GET)
11         public String quer(Model model) throws Exception {
13             return "redirect:/#/home";  13             //return "redirect:/index.jsp";
14         }
15
16         @RequestMapping(value = "/save", method = RequestMethod.GET)
17         public ModelAndView saveUser(HttpServletRequest request, HttpServletResponse response) throws Exception {
18             ModelAndView mv = new ModelAndView("forward:/users/uc");19             //ModelAndView mv = new ModelAndView("redirect:/#/home");
20             return mv;
21         }
22     }   

2.ajax请求

(1)<mvc:annotation-driven />

前面提过,<mvc:annotation-driven /> 里面包含了对JSON的支持。

(2)使用@ResponseBody注解

1 @RequestMapping("/ajax")
2 @ResponseBody 
3 public Object ajax(HttpServletRequest request){
4     List<String> list=new ArrayList<String>();
5     list.add("电视");
6
7     return list;
8 } 

转载于:https://www.cnblogs.com/lyh421/p/6652861.html

2017.3.31 spring mvc教程(六)转发、重定向、ajax请求相关推荐

  1. ajax spring mvc 接收json数据,easyui ajax请求获取SpringMVC @ResponseBody返回的Json数据为什么非得eval才能通过对象获取值?...

    是这样的,问题是不是比较郁闷, Spring代码@RequestMapping(value="/UserModel/createUser.html") @ResponseBody ...

  2. 史上最简单的 Spring MVC 教程(九)

    1 前言 在史上最简单的 Spring MVC 教程(五.六.七.八)等四篇博文中,咱们已经分别实现了"人员列表"的显示.添加.修改和删除等常见的增.删.改.查功能.接下来,也就是 ...

  3. spring mvc教程_Spring MVC教程

    spring mvc教程 1.简介 作为企业Java开发人员,这项工作的主要重点之一是开发Web应用程序. 对于Web应用程序,后果还包括许多挑战. 具体来说,其中一些是状态管理,工作流和验证. HT ...

  4. spring mvc 教程_Spring MVC开发–快速教程

    spring mvc 教程 这是我们的JCG合作伙伴之一,来自Manoj的有关使用Spring开发Web应用程序的简短教程, 网址为" The Khangaonkar Report &quo ...

  5. tomcat + spring mvc原理(六):tomcat WAR包的部署与加载

    tomcat + spring mvc原理(六):tomcat WAR包的部署与加载 前言 监控的启动原理 状态监听 部署项目 前言 单独部署的tomcat服务器在运行中,当开发人员或者运维人员将开发 ...

  6. Spring MVC 教程,快速入门,深入分析

    目录  转载自:http://elf8848.iteye.com/blog/875830 资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf 点击打开链接 SpringMVC核 ...

  7. Spring MVC 教程,快速入门,深入分析【转】

    2019独角兽企业重金招聘Python工程师标准>>> 转自:赵磊 地址:http://elf8848.iteye.com 目录  一.前言 二.spring mvc 核心类与接口 ...

  8. Spring MVC 教程详解 个人总结 复习必备 面试宝典 狂神笔记

    文章目录 一.MVC 模式 1.什么是 MVC 2.Servlet MVC 小结 二.Spring MVC 1.Spring MVC 概念 为什么学习 Spring MVC 中央控制器 Dispatc ...

  9. Spring MVC教程

    1.简介 作为企业Java开发人员,这项工作的主要重点之一是开发Web应用程序. 对于Web应用程序,后果还包括许多挑战. 具体来说,其中一些是状态管理,工作流和验证. HTTP协议的无状态性质只会使 ...

最新文章

  1. 英语发音规则---N字母
  2. 阿里移动电商背后的技术航母
  3. 万物之始正则表达式全解析三部曲(上篇)-正则表达式基础知识及语法
  4. 云网络丢包故障定位全景指南
  5. 【链接保存】十分钟上手sklearn:安装,获取数据,数据预处理
  6. 自然语言处理实践Task1
  7. LeetCode--35. 搜索插入位置(遍历,二分法)
  8. SpringMVC接收json数据转对象中的一些问题(415错误的解决)
  9. AcWing 1843. 圆形牛棚(暴力+枚举)
  10. Linux系统编程 -- volatile关键字
  11. Join()--用法
  12. 三层交换机和链路聚合
  13. Web漏洞扫描器—AppScan
  14. Web基础——CSS基础概念(2)
  15. Python重试机制模块:tenacity
  16. 嫁给年薪百万的程序员,结婚 6 年后的我竟然还是处女
  17. jquery input标签中 中checkbox全部选中与全部取消
  18. 关于windows桌面网络图标显示未连接却可以上网的情况
  19. 触发器一(触发器简介)
  20. stata回归?固定效应模型(组内变换OR LSDV最小二乘法)

热门文章

  1. Spring_HelloWord
  2. ASP.NET 缓存技术分析
  3. 偶然在网上看到的题目,jQuery功底如何一测便知晓!!!!!!
  4. flash在影片剪辑里面跳转场景
  5. 针对plsql developer使用做的三个小设置
  6. 23种设计模式UML图
  7. javascript --- 实战中体会jsonp
  8. 操作系统 --- 使用套接字进行网络通信
  9. jQuery插件备忘
  10. Facebook开源动画库 POP-POPBasicAnimation运用