同步请求的返回值类型 :

void : 啥也不返回

String :表示逻辑视图名

ModelAndView:该对象既有逻辑视图名,还可以携带去页面要展示的数据

同步请求:如何将controller层的数据携带到页面上。

    1.使用ModelAndView作为方法的返回值类型

    2.使用Map、Model、ModelMap、类型的参数  在前端页面用el表达式取值即可

注意:无论使用ModelAndView还是放到Map ,中springmvc底层都会把数据放发request域中

从域中取值

${username} 全域查找 默认从最小的域查找pageScope-->requestScope-->sessionScope-->ApplicationScope.

${requestScope.username}

@RequestMapping("testResponse")
public ModelAndView testResponse(){
ModelAndView mv = new ModelAndView("result")
Book book = new Book();
book.setBookName("活着");
book.setPrice(89);
mv.addObject("books", book);
//插入的数据也可以是调用的数据库的数据
return mv;
}

2.Map类型的参数 。使用的时候 用String类型的返回值即可

@RequestMapping("testResponse")
public String testResponse(Map<String,Object> map){
map.put("userName", "张三");
return "result";
}
//在前端页面用el表达式取出即可

3.Model参数 和使用ModelMap 一样  使用的时候 用String类型的返回值即可

@RequestMapping("testResponse")
public String testResponse(Model model){
model.addAttribute("username","张三");
return "result"; }

二、异步请求:Json

返回异步请求的数据 ,几乎各种数据都可以异步返回

Map-------------------->转化之后成为 json对象

对象、   --------------------->转化为json对象

对象列表(对象List)     ------->转化后成为json数组

true

@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML

数据,需要注意的呢,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据

controller 如何返回json数据:

1.导入json的包

2.在controller加一个@responseBody注解

3.在springmvc.xml中配置<mvc:annotation-driven/>

1.使用Map方式发送json数据

    @RequestMapping("/json1")
@ResponseBody
public Map testJson1(){
Map map = new HashMap();
map.put("username","李四");
map.put("age","19");
return map;
//此处的map 是new创建出来的 不是接收参数的那个map 那是同步请求操作用的 异步用new
}
{"age":"19","username":"李四"}  
Map类型的通过转化之后 自动转化为 对象的格式!!

2.对象类型的转化json   也转化成json对象的格式

    @RequestMapping("/json2")
@ResponseBody
public Book testJson2(){
Book book = new Book();
book.setBid(1);
book.setName("春暖花开");
book.setPrice(200.22);
return book;
}
{"bid":1,"name":"春暖花开","price":200.22}

3.对象列表(list) 转化为json之后  转化为json数组的形式

    @RequestMapping("/json3")
@ResponseBody
public List<Book> testJson3(){
List<Book> list = new ArrayList<Book>(); //往List列表放两个对象
Book book = new Book();
book.setBid(1);
book.setName("春暖花开");
book.setPrice(200.22);
list.add(book); Book book1 = new Book();
book1.setBid(2);
book1.setName("天龙八部");
book1.setPrice(250.22);
list.add(book1);
return list;
}
[{"bid":1,"name":"春暖花开","price":200.22},{"bid":2,"name":"天龙八部","price":250.22}]

三、使用原生API

只需要在目标方法的参数上直接声明即可

   @RequestMapping("/testRawApi")
public String testRawApi(HttpServletRequest request, HttpServletResponse response, HttpSession session){
System.out.println(request);
System.out.println(response);
System.out.println(session);
return "index";
}

同步请求与异步请求Json的更多相关文章

  1. OKHttp源码学习同步请求和异步请求(二)

    OKHttp get private void doGet(String method, String s) throws IOException { String url = urlAddress ...

  2. Http中的同步请求和异步请求

    最近在上springmvc的JSON数据交换的时候,老师下课提了一个课后问题:什么是异步请求?什么是同步请求?我想大部分同学听到这个问题的时候应该和我一样不知所云.现在,给大家分享一篇关于同步请求和异 ...

  3. 详细解读XMLHttpRequest(一)同步请求和异步请求

    本文主要参考:MDN XMLHttpRequest 让发送一个HTTP请求变得非常容易.你只需要简单的创建一个请求对象实例,打开一个URL,然后发送这个请求.当传输完毕后,结果的HTTP状态以及返回的 ...

  4. Objective-C Http常用API 同步请求与异步请求

    开发iOS应用要调用Http接口.获取Http资源,有一套比较成熟的框架ASIHTTPRequest.而我还是比较喜欢使用原始一点的 API,而它跟其他的面向对象语言有许多共通之处.本文分同步请求和异 ...

  5. 同步请求和异步请求的区别,ajax异步请求如何理解

    同步请求和异步请求的区别 先解释一下同步和异步的概念 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的 ...

  6. 【Objective-C】Http常用API、同步请求与异步请求[转]

    比较实用, 转载保存 开发iOS应用要调用Http接口.获取Http资源,有一套比较成熟的框架ASIHTTPRequest.而我还是比较喜欢使用原始一点的API,而它跟其他的面向对象语言有许多共通之处 ...

  7. 第106天:Ajax中同步请求和异步请求

    同步请求和异步请求的区别 1.同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 用户填写所有信息后,提交给服务器,等待服务器的回应(检验数据),是一次性的.信息错误又要重新 ...

  8. IOS-网络(HTTP请求、同步请求、异步请求、JSON解析数据)

    // // ViewController.m // IOS_0129_HTTP请求 // // Created by ma c on 16/1/29. // Copyright © 2016年 博文科 ...

  9. ajax同步请求与异步请求的区别

    ajax 区别: async:布尔值,用来说明请求是否为异步模式.async是很重要的,因为它是用来控制JavaScript如何执行该请求. 当设置为true时,将以异步模式发送该请求,JavaScr ...

随机推荐

  1. mysql BETWEEN操作符 语法

    mysql BETWEEN操作符 语法 作用:选取介于两个值之间的数据范围.这些值可以是数值.文本或者日期.大理石平台 语法:SELECT column_name(s) FROM table_name ...

  2. HDU 5687 Problem C ( 字典树前缀增删查 )

    题意 : 度熊手上有一本神奇的字典,你可以在它里面做如下三个操作: 1.insert : 往神奇字典中插入一个单词 2.delete: 在神奇字典中删除所有前缀等于给定字符串的单词 3.search: ...

  3. 【CF1252J】Tiling Terrace(DP)

    题意:有一个长为n的串,每个字符是#或者.中的一个,#不超过50个 有3种覆盖串的方式:(.),(..),(.#.),分别能获得g1,g2,g3的收益,覆盖之间不能重叠 第一种方式不能使用超过K次,问 ...

  4. 一篇面试的考题----jQuery

    一.jQuery测试题 下面哪种不是jquery的选择器?(单选)A.基本选择器 B.后代选择器 C.类选择器 D.进一步选择器考点:jquery的选择器 (C) 当DOM加载完成后要执行的函数,下面 ...

  5. Linux shell -查找字符(find,xargs,grep)

    在当前目录下查找含有jmxremote字符的文件 test@>find . -type f|xargs grep "jmxremote" . 当前目录 -type 查找文件类 ...

  6. jvm监测

    jvm调优,首先,你得会jvm性能检测.开方得先诊断啊.

  7. Linux下使用 ipset 封大量IP及ipset参数说明

    转载Linux下使用 ipset 封大量IP及ipset参数说明 Linux使用iptables封IP,是常用的应对网络攻击的方法,但要封禁成千上万个IP,如果添加成千上万条规则,对机器性能影响较大, ...

  8. C# 调Win32 API SendMessage简单用法及wMsg常量

    函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.该函数是应用程序和应用程序之间进行消息传递的主要手段之一.     函数原型:LRESU ...

  9. 织梦自定义表单导出为excel功能

    1.首先在后台修改/dede/templets/diy_main.htm <a href="../plus/diy.php?action=daochu&diyid={dede: ...

  10. HashSet 源码分析

    HashSet 1)HashSet 是基于 HashMap 的 Set 接口实现,元素的迭代是无序的,可以使用 null 元素. 创建实例 /** * HashSet基于HashMap实现 */ pr ...