[转发]SPRING MVC3.2案例讲解--SPRING MVC3的@ResponseBody和ResponseEntity

在传统的开发过程中,我们的控制CONTROLL层通常需要转向一个JSP视图;但随着WEB2.0相关技术的崛起,我们很多时候只需要返回数据即可,而不是一个JSP页面。

SPRING MVC3的@ResponseBody使Controller直接返回数据,而不是直接指向具体的视图;同时通过

MessageConverter和produces(如produces="text/plain;charset=UTF-8")可以返回各种格式的数据(XML,json,RSS,TEXT,字节流等),本章只介绍最简单的使用;

见代码:

@ResponseBody可以直接返回结果,

而ResponseEntity 可以定义返回的HttpHeaders和HttpStatus,见文章最后的两张图

[java] view plain copy

  1. @RequestMapping(value="/response", method=RequestMethod.GET)
  2. public class ResponseController {
  3. //http://127.0.0.1:8010/response/annotation
  4. @RequestMapping("/annotation")
  5. public @ResponseBody String responseBody() {
  6. return "The String ResponseBody";
  7. }
  8. @RequestMapping("/charset/accept")
  9. public @ResponseBody String responseAcceptHeaderCharset() {
  10. return "\u3053\u3093\u306b\u3061\u306f\u4e16\u754c\uff01 (\"Hello world!\" in Japanese)";
  11. }
  12. //http://127.0.0.1:8010/response/charset/produce
  13. @RequestMapping(value="/charset/produce", produces="text/plain;charset=UTF-8")
  14. public @ResponseBody String responseProducesConditionCharset() {
  15. return "\u3053\u3093\u306b\u3061\u306f\u4e16\u754c\uff01 (\"Hello world!\" in Japanese)";
  16. }
  17. //http://127.0.0.1:8010/response/entity/status
  18. @RequestMapping("/entity/status")
  19. public ResponseEntity<String> responseEntityStatusCode() {
  20. return new ResponseEntity<String>("The String ResponseBody with custom status code (403 Forbidden)",
  21. HttpStatus.FORBIDDEN);
  22. }
  23. //http://127.0.0.1:8010/response/entity/headers
  24. @RequestMapping("/entity/headers")
  25. public ResponseEntity<String> responseEntityCustomHeaders() {
  26. HttpHeaders headers = new HttpHeaders();
  27. headers.setContentType(MediaType.TEXT_PLAIN);
  28. return new ResponseEntity<String>("The String ResponseBody with custom header Content-Type=text/plain",
  29. headers, HttpStatus.OK);
  30. }
  31. }


 

 

时间: 2024-10-03 19:54:26

[转发]SPRING MVC3.2案例讲解--SPRING MVC3的@ResponseBody和ResponseEntity的相关文章

Spring源码深度解析,事务案例讲解高级

Spring的整体架构Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,如下图所示 这些模块被总结为以下几个部分: Core Container Core Container(核心容器)包含有Core.Beans.Context和Expression Language模块 Core和Beans模块是框架的基础部分,提供IoC(转控制)和依赖注入特性.这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许

spring常用注解使用讲解

spring常用注解使用讲解 本文讲述spring的几个常用的注解 @RequestMapping @RequestParam @ResponseBody @RequestBody @Autowired 一.@RequestMapping  RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestMapping注解有六个属性,下面我们把她分成三类进行说明. 1. value, method: v

《Spring学习笔记》:Spring、Hibernate、struts2的整合(以例子来慢慢讲解,篇幅较长)

<Spring学习笔记>:Spring.Hibernate.struts2的整合(以例子来慢慢讲解,篇幅较长) 最近在看马士兵老师的关于Spring方面的视频,讲解的挺好的,到了Spring.Hibernate.struts2整合这里,由于是以例子的形式来对Spring+Hibernate+struts2这3大框架进行整合,因此,自己还跟着写代码的过程中,发现还是遇到了很多问题,因此,就记录下. 特此说明:本篇博文完全参考于马士兵老师的<Spring视频教程>. 本篇博文均以如下这

Spring AOP的案例

屌丝的时间总是有那么多. 无聊等球赛中,不知道尽头的巴西会如何拾取被德国摧残的尊严.突然想起teamleader周5的时候让我给现在刚上线的一个项目中加入一个切面,以便统一输出一些日志.之所以会有这个想法,是因为在周5的早上我跟teamleader提交了一个关于项目中缺少业务日志问题产生的.至于为什么会有这个问题,我不得不吐槽下我现在的团队兄弟们,算了,还是言归正传,说说我刚才写的一个AOP案例吧. 因为初衷只是为了给代码中加入一些日志,而我后来想到顺便加上一个对service层的方法执行时间的

从@Async案例找到Spring框架的bug:exposeProxy=true不生效原因大剖析+最佳解决方案【享学Spring】

https://cloud.tencent.com/developer/article/1497700 前言 本文标题包含有'靓丽'的字眼:Spring框架bug.相信有的小伙伴心里小九九就会说了:又是一篇标题党文章. 鉴于此,此处可以很负责任的对大伙说:本人所有文章绝不哗众取宠,除了干货只剩干货. 相信关注过我的小伙伴都是知道的,我只递送干货,绝不标题党来浪费大家的时间和精力~那无异于谋财害命(说得严重了,不喜勿喷) 关于标题党的好与坏.优与劣,此处我不置可否 本篇文章能让你知道exposeP

【shiro】(4)---Shiro认证、授权案例讲解

Shiro认证.授权案例讲解 一.认证  1. 认证流程     2.用户密码已经加密.加盐的用户认证 (1)测试类 // 用户登陆和退出,这里我自定了一个realm(开发肯定需要自定义realm获取数据库密码和权限) @Test public void testCustomRealmMd5() { // 创建securityManager工厂,通过ini配置文件创建securityManager工厂 Factory<SecurityManager> factory = new IniSecu

Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)

Spring概念 spring是开源的轻量级框架(即不需要依赖其他东西,可用直接使用) spring核心主要两部分 aop:面向切面编程,扩展功能不是修改源代码来实现: ioc:控制反转,比如:有一个类,在类中有个方法(非静态的方法),要调用类中的这个方法,则需要创建类的对象,使用对象调用方法.创建类对象的过程,需要new出来对象:而ioc则是将对象的创建不是通过new方式实现,而是交给spring配置来创建对象(即,将对象的创建交给spring来管理): spring是一站式框架 spring

Spring系列之谈谈对Spring IOC的理解

学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IOC .DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解. 一.分享Iteye的开涛对Ioc的精彩讲解首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文 1.1.IoC是什么 Ioc—Inversi

spring(4)面向切面的Spring(AOP)

[0]README 1)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review  "spring(4)面向切面的Spring(AOP)" 的相关知识: 2)在软件开发中,散布于应用中多处的功能被称为横切关注点.通常来讲,这些横切关注点从概念上是与应用的业务逻辑相分离的(但是往往会直接嵌入到应用的业务逻辑中).把这些横切关注点与业务逻辑相分离正是面向切面编程(AOP)所要解决的问题:(干货--引入横切关注点及其所要解决的问题) 3)