springMvc REST 请求和响应

前言:

    突然怎么也想不起来  springMvc REST 请求的返回  类型了!   (尴尬+究竟)  然后本着 方便的想法 百度了一下

发现了个问题,大家在写      springMvc REST 的文档 和记录或者笔记的时候 。

只写到了 符合 REST 风格的 请求 ,而 响应信息 完全是 传统的 主体数据传递 。然而这并非 REST响应的 风格啊 !!!!

下面把自己整理的笔记发上来

关于MVC REST 请求的方式

格式1

    @RequestMapping(value = "{itemCatId}", method = RequestMethod.GET)
    public ResponseEntity<TbItemParam> queryItemParamByItemCatid(
            @PathVariable Long itemCatId)
    {

    }
格式2 

    @RequestMapping(value = "{itemCatId}", method = RequestMethod.GET)
    @ResponseBody
    public ResponseEntity<TbItemParam> queryItemParamByItemCatid(
            @PathVariable("itemCatId") Long itemCatId)
    {

    }

格式3
    @RequestMapping(value = "/destroy/{ConsumerID:^[0-9]*.*@[0-9]*}", method = RequestMethod.GET, produces = "application/json; charset=utf-8")
    @ResponseBody
    public ResponseEntity<String> destroyMqConsumer(@PathVariable String ConsumerID)
    {

    }
格式4 

    @RequestMapping(value = "{itemCatId}", method = RequestMethod.POST)
    public ResponseEntity<Void> saveItemParam(@PathVariable("itemCatId") Long itemCatId,
            @RequestParam("paramData") String paramDate)
    {
    }

REST 响应的方式
        try
        {
            TbItemParam queryitemParam = new TbItemParam();
            queryitemParam.setItemCatId(itemCatId);
            return ResponseEntity.ok(queryitemParam);  // 状态码是  200
            return ResponseEntity.status(HttpStatus.CREATED).build();  // 状态码是  200  不返回 实体数据
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(queryitemParam);  // 状态码是  200  返回 实体数据
        }
        catch (Exception e)
        {
            e.printStackTrace();
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null); // 状态码是  200  返回 实体数据 是null
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
            // 状态码是  500
        }

备注:

关于返回值是 List 的问题
    建议自定义分装一个POJO         

@ResponseBody 注解的再次说明 

    该注解是通过请求头的带入的信息来 格式化对应的返回值的的!!

    produces = "application/json; charset=utf-8"
    返回对象是一个  UTF-8格式的 JSON 对象

    produces = "application/xml; charset=gbk"
    返回对象是一个  gbk格式的 xml 对象

@RequestMapping("table")
@Controller
public class outTable
{

    @RequestMapping(value = "/json", method = RequestMethod.GET, produces = "application/json; charset=utf-8")
    @ResponseBody
    public ResponseEntity<Clientinfo> querylist()
    {
        Clientinfo c = new Clientinfo();
        c.setClientflag("100");
        c.setClientname("1001");
        c.setCrmcode(1002);
        c.setId(1);
        return ResponseEntity.ok(c);
    }

    @RequestMapping(value = "/xml", method = RequestMethod.GET, produces = "application/xml; charset=utf-8")
    @ResponseBody
    public ResponseEntity<Clientinfo> query()
    {
        Clientinfo c = new Clientinfo();
        c.setClientflag("100");
        c.setClientname("1001");
        c.setCrmcode(1002);
        c.setId(1);
        return ResponseEntity.ok(c);
    }

}    
时间: 2024-08-28 21:38:46

springMvc REST 请求和响应的相关文章

Java学习路线分享SpringMVC之请求和响应

Java学习路线分享SpringMVC之请求和响应,前面我们学习了SpringMVC的基本配置,接下来一个非常重要的知识点是如何接受用户的请求以及如何将数据发送给用户. 获得请求参数 获得页面参数的几种方式 1)通过参数名获得 给控制器的方法设置参数名和表单name相同 2)通过@RequestParam("参数名")注解设置参数 @RequestParam("表单元素的name") 参数类型 参数名 3)自动装箱,创建属性名和表单名称一样的类 把类作为方法的参数

Spring SpringMVC的请求和响应

一,SpringMVC的数据响应 1.1 数据响应方式 1.2 页面跳转 1.2.1 返回字符串数据 1.2.2 返回ModelAndView 1.3 回写数据 1.3.1 直接回写字符串 1.3.2 会写json格式字符串 1.3.3 返回对象和集合 1.4 总结 二,SpringMVC的请求 2.1 请求参数的类型 2.2 常用的请求参数 2.2.1 获取基本类型参数 2.2.2 获取POJO类型参数 2.2.3 获取数组类型参数 2.2.4 获取集合类型参数 三,常见配置 3.1 静态资源

SpringMVC框架(2)--请求与响应

01-SpringMVC的数据响应-数据响应方式(理解) 1) 页面跳转 直接返回字符串 通过ModelAndView对象返回 2) 回写数据 直接返回字符串 返回对象或集合 02-SpringMVC的数据响应-页面跳转-返回字符串形式(应用) 03-SpringMVC的数据响应-页面跳转-返回ModelAndView形式1(应用) 在Controller中方法返回ModelAndView对象,并且设置视图名称 @RequestMapping(value="/quick2") publ

Java框架之SpringMVC 03-RequestMapping-请求数据-响应数据

SpringMVC SpringMVC是一种轻量级的.基于MVC的Web层应用框架. 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口. 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性. 优点: 1.天生与Spring框架集成,如:(IOC,AOP) 2.支持Restful风格 3.支持灵活的URL到页面控制器的映射 4.非常容易与其他视图技术集成,如:Velocity.FreeMarker等等 5.因为模型数据不存放在特定的API里,而是放在

http请求与响应全过程

HTTP 无状态性 HTTP 协议是无状态的(stateless).也就是说,同一个客户端第二次访问同一个服务器上的页面时,服务器无法知道这个客户端曾经访问过,服务器也无法分辨不同的客户端.HTTP 的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP 请求. HTTP 持久连接       HTTP1.0 使用的是非持久连接,主要缺点是客户端必须为每一个待请求的对象建立并维护一个新的连接,即每请求一个文档就要有两倍RTT 的开销.因为同一个页面可能存在多个对象,所以非持久连接可

请求和响应。

之前先复习: 1.Servlet: Servlet接口. MyServlet extends HttpServlet. (HttpServlet继承自GenericServlet,GenericServlet实现了Servlet接口.) 2.java web的 servlet技术: Java程序和页面之间的桥梁.Servlet对象放在tomcat web服务器,web容器,servlet容器. 3.调用.当请求出现时,tomcat根据映射路径找到对应的类,创建对应的对象,调用父类写好的servi

初入网络系列笔记(4)HTTP请求和响应

一.借鉴说明,本博文借鉴以下博文 1.starok,HTTP必知必会,http://www.cnblogs.com/starstone/p/4890409.html 2.CareySon,HTTP协议漫谈,http://www.cnblogs.com/CareySon/archive/2012/04/27/HTTP-Protocol.html 3.逖靖寒,浅析HTTP协议,http://www.cnblogs.com/gpcuster/archive/2009/05/25/1488749.htm

HTTP/NSURLConnection(请求、响应)、http响应状态码大全

一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新,应用才能保持新鲜.活力如果没有了网络,也就缺少了数据变化,无论外观多么华丽,终将变成一潭死水 移动网络应用 = 良好的UI + 良好的用户体验 + 实时更新的数据新闻:网易新闻.新浪新闻.搜狐新闻.腾讯新闻视频:优酷.百度视频.搜狐视频.爱奇艺视频音乐:QQ音乐.百度音乐.酷狗音乐.酷我音乐LBS:百度地

[IBM]掌握Ajax,Ajax中的高级请求和响应

掌握 Ajax, Ajax 中的高级请求和响应 http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro3/ dynaTrace Ajax:前端性能分析利器 http://www.ibm.com/developerwo