#### 1. 响应正文
在SpringMVC中,处理完请求之后,默认的响应方式是转发或重定向,这种操作会导致用户看到的界面会发生变化(将看到另一个页面),这种做法的缺陷在于:
1. 用户体验较差,例如操作失败时,不能直接在当前页面提示错误,只能用另一个页面来提示,当用户尝试再次操作时,需要先返回到原有页面,才可以进行下一次操作;
2. 产生的流量消耗较大,用于提示错误的页面,也是一个完整的页面,相对于只响应正文而言,流量的消耗会大很多,直接导致用户体验较差,并且流量费会增加;
3. 对多平台设备的兼容较差,如果服务器端响应的是一个html页面(含JSP),可能不适用于在手机端、平板电脑等其它设备上直接显示。
目前,主流的开发模式是**服务器端处理完请求之后,只向客户端响应正文(客户端应该得到的数据),由客户端(前端页面、Android APP、iOS APP及其它客户端软件)组织并呈现这些数据。**
如果需要服务器端处理请求时能响应正文,需要在处理请求的方法之前添加`@ResponseBody`注解,并在Spring的配置文件中,添加注解驱动`<mvc:annotation-driven />`。
添加了`@ResponseBody`注解的方法,其返回值就是将响应到客户端的数据。
#### 2. 响应正文的数据格式
服务器端响应给客户的数据应该是有数据格式的,否则,当客户端接收到响应结果时,可能无法分析出其中的数据意义,例如当客户端请求的是某个用户的资料,其中应该包含用户的名称、年龄、手机号码、电子邮箱等,这些数据如果组织在1个字符串中,没有特定的数据格式的话,客户端将无从解析,从中得到哪些是用户的名称,哪些是年龄等。
早期推荐使用XML组织数据的格式,例如: