zoukankan      html  css  js  c++  java
  • 同步请求与异步请求Json

    同步请求的返回值类型 :

    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";
        }
  • 相关阅读:
    TWaver中文社区 » 关于
    RedMon Redirection Port Monitor
    dust good
    HiSpider(Hitask) is a fast and high performance spider with high speed
    42qu.com 找到给你答案的人
    yet another 牛人
    Simple Map Reduce at home
    China (googlegroups) [CPyUG:78205] 基于Python的MapReduce算法的快速构建框架
    retools 0.1 : Python Package Index
    Bloomfilter 的应用场景 黄刚的专栏 博客频道 CSDN.NET
  • 原文地址:https://www.cnblogs.com/ych961107/p/11888368.html
Copyright © 2011-2022 走看看