2017.3.31 spring mvc教程(六)转发、重定向、ajax请求
学习的博客: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请求相关推荐
- ajax spring mvc 接收json数据,easyui ajax请求获取SpringMVC @ResponseBody返回的Json数据为什么非得eval才能通过对象获取值?...
是这样的,问题是不是比较郁闷, Spring代码@RequestMapping(value="/UserModel/createUser.html") @ResponseBody ...
- 史上最简单的 Spring MVC 教程(九)
1 前言 在史上最简单的 Spring MVC 教程(五.六.七.八)等四篇博文中,咱们已经分别实现了"人员列表"的显示.添加.修改和删除等常见的增.删.改.查功能.接下来,也就是 ...
- spring mvc教程_Spring MVC教程
spring mvc教程 1.简介 作为企业Java开发人员,这项工作的主要重点之一是开发Web应用程序. 对于Web应用程序,后果还包括许多挑战. 具体来说,其中一些是状态管理,工作流和验证. HT ...
- spring mvc 教程_Spring MVC开发–快速教程
spring mvc 教程 这是我们的JCG合作伙伴之一,来自Manoj的有关使用Spring开发Web应用程序的简短教程, 网址为" The Khangaonkar Report &quo ...
- tomcat + spring mvc原理(六):tomcat WAR包的部署与加载
tomcat + spring mvc原理(六):tomcat WAR包的部署与加载 前言 监控的启动原理 状态监听 部署项目 前言 单独部署的tomcat服务器在运行中,当开发人员或者运维人员将开发 ...
- Spring MVC 教程,快速入门,深入分析
目录 转载自:http://elf8848.iteye.com/blog/875830 资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf 点击打开链接 SpringMVC核 ...
- Spring MVC 教程,快速入门,深入分析【转】
2019独角兽企业重金招聘Python工程师标准>>> 转自:赵磊 地址:http://elf8848.iteye.com 目录 一.前言 二.spring mvc 核心类与接口 ...
- Spring MVC 教程详解 个人总结 复习必备 面试宝典 狂神笔记
文章目录 一.MVC 模式 1.什么是 MVC 2.Servlet MVC 小结 二.Spring MVC 1.Spring MVC 概念 为什么学习 Spring MVC 中央控制器 Dispatc ...
- Spring MVC教程
1.简介 作为企业Java开发人员,这项工作的主要重点之一是开发Web应用程序. 对于Web应用程序,后果还包括许多挑战. 具体来说,其中一些是状态管理,工作流和验证. HTTP协议的无状态性质只会使 ...
最新文章
- 英语发音规则---N字母
- 阿里移动电商背后的技术航母
- 万物之始正则表达式全解析三部曲(上篇)-正则表达式基础知识及语法
- 云网络丢包故障定位全景指南
- 【链接保存】十分钟上手sklearn:安装,获取数据,数据预处理
- 自然语言处理实践Task1
- LeetCode--35. 搜索插入位置(遍历,二分法)
- SpringMVC接收json数据转对象中的一些问题(415错误的解决)
- AcWing 1843. 圆形牛棚(暴力+枚举)
- Linux系统编程 -- volatile关键字
- Join()--用法
- 三层交换机和链路聚合
- Web漏洞扫描器—AppScan
- Web基础——CSS基础概念(2)
- Python重试机制模块:tenacity
- 嫁给年薪百万的程序员,结婚 6 年后的我竟然还是处女
- jquery input标签中 中checkbox全部选中与全部取消
- 关于windows桌面网络图标显示未连接却可以上网的情况
- 触发器一(触发器简介)
- stata回归?固定效应模型(组内变换OR LSDV最小二乘法)