SpringMVC的常用注解(四)中

简介: SpringMVC的常用注解(四)

四 @ReponseBody 注解


@Target({java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ResponseBody {}


@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。


作用于方法上。


  @RequestMapping(value="/register")
  @ResponseBody
  public String register(User user){
  }


四.一 运行过程:


该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区


四.二 使用时机


返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用。 常常是用JSON格式,后面专门讲解。


是将方法的返回结果 以JSON的方式,返回给前端。 与@RequestBody 正好相反。


五. @RequestHeader


@Target({java.lang.annotation.ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestHeader
{
  @AliasFor("name")
  String value() default "";
  @AliasFor("value")
  String name() default "";
  boolean required() default true;
  String defaultValue() default "\n\t\t\n\t\t\n\n\t\t\t\t\n";
}


把 请求 request 的Header 头部的内容直接绑定在参数上,方便获取浏览器头部的值。


常见的头部值有:


Host: 请求的web服务器域名地址


User-Agent: HTTP客户端运行的浏览器类型的详细信息。通过该头部信息,web服务器可以判断到当前HTTP请求的客户端浏览器类别。


Accept: 指定客户端能够接收的内容类型,内容类型中的先后次序表示客户端接收的先后次序。

Accept-Language: 指定HTTP客户端浏览器用来展示返回信息所优先选择的语言。


Accept-Encoding: 指定客户端浏览器可以支持的web服务器返回内容压缩编码类型。表示允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽。而这里设置的就是客户端浏览器所能够支持的返回压缩格式


Accept-Charset: 浏览器可以接受的字符编码集。


Content-Type: 显示此HTTP请求提交的内容类型。一般只有post提交时才需要设置该属性。


Keep-Alive: 显示此HTTP连接的Keep-Alive时间。使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。以前HTTP请求是一站式连接,从HTTP/1.1协议之后,就有了长连接,即在规定的Keep-Alive时间内,连接是不会断开的。


@RequestHeader 注解标记在方法参数上,每一个参数都要进行相应的标识。


@RequestMapping(value="/register")
  public String register(@RequestHeader(value="User-Agent") String user_agent,
      @RequestHeader(value="Accept") String accept ){
    System.out.println("浏览器:"+user_agent);
    System.out.println("接收类型:"+accept);
    return "user/login";
  }


请求之后,控制台打印输出:


20190802170717854.png

相关文章
|
18天前
|
前端开发 Java Spring
Spring MVC 是如何对对象参数进行校验的
【6月更文挑战第4天】对象参数校验是使用 SpringMVC 时常用的功能,这篇文章尝试分析了,Spring 是如何实现这一功能的。
29 5
|
19天前
|
Web App开发 前端开发 Java
基于Spring3 MVC实现基于HTML form表单文件上传
基于Spring3 MVC实现基于HTML form表单文件上传
23 7
基于Spring3 MVC实现基于HTML form表单文件上传
|
2天前
|
安全 前端开发 Java
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
8 1
|
5天前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
11 1
|
5天前
|
前端开发 Dubbo Java
spring面试题_spring mvc面试题_springboot面试题库
spring面试题_spring mvc面试题_springboot面试题库
|
7天前
|
JSON 前端开发 Java
【JavaEE进阶】 关于Spring MVC 响应
【JavaEE进阶】 关于Spring MVC 响应
14 3
|
8天前
|
缓存 NoSQL Java
在 SSM 架构(Spring + SpringMVC + MyBatis)中,可以通过 Spring 的注解式缓存来实现 Redis 缓存功能
【6月更文挑战第18天】在SSM(Spring+SpringMVC+MyBatis)中集成Redis缓存,涉及以下步骤:添加Spring Boot的`spring-boot-starter-data-redis`依赖;配置Redis连接池(如JedisPoolConfig)和连接工厂;在Service层使用`@Cacheable`注解标记缓存方法,指定缓存名和键生成策略;最后,在主配置类启用缓存注解。通过这些步骤,可以利用Spring的注解实现Redis缓存。
26 2
|
19天前
|
前端开发 IDE Java
Spring3 MVC 集成Velocity中文支持
Spring3 MVC 集成Velocity中文支持
35 7
|
19天前
|
前端开发 Java BI
Spring3 Web MVC 集成Jasper Report生成PDF例子
Spring3 Web MVC 集成Jasper Report生成PDF例子
30 7
|
16天前
|
JSON 前端开发 Java
Spring MVC 级联对象参数校验
【6月更文挑战第6天】在 Spring MVC 的使用过程中,我们会发现很多非常符合直觉的功能特性,但往往我们会习惯这种「被照顾得很好」的开发方式,依靠直觉去判断很多功能特性的用法。
18 1