SpringMVC中的常用注解

  • SpringMVC中的常用注解
  • 使用注解实现简单的登录


SpringMVC中的常用注解

@Controller @Controller注解标注是一个类是Web控制器,其和@Component注解等价,只不过在Web层使用,其便于区分类的作用。

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_Spring MVC接口重复提交 注解

@RequestMapping @RequestMapping是Spring Web应用程序中最常被用到的注解之一。 在对SpringMVC进行配置的时候,需要指定请求与处理方法之间的映射关系,这时候就需要使用@RequestMapping注解。该注解可以在控制器类的级别和其方法级别上使用。 @RequestMapping注解能够处理的HTTP请求方法有: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE 。 为了能够将一个请求映射到一个特定的HTTP方法,需要在@RequestMapping中使用method参数声 明HTTP请求所使用的方法类型。如下示例,在 TestController 中添加请求映射方法

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_Spring MVC接口重复提交 注解_02


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_java_03

返回类型:最常用的Controller 返回的类型()具体的返回的类型可以参考官方的文档:官方链接 String返回类型 有两种使用方式: 返回 URI 资源路径的字符串,可以使用 redirect:/服务路径 表示重定向到某个路径, forward:/服务路径 表示转发到某个路径,如果前边不写默认就是转发。

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_Spring MVC接口重复提交 注解_04


那么两者的区别是什么呢?👇


1.从地址栏显示来说:


1)forword是服务器内部的重定向,服务器直接访问目标地址的 url网址,把里面的东西读取出来,但是客户端并不知道,因此用forward的话,客户端浏览器的网址是不会发生变化的。


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_Spring MVC接口重复提交 注解_05


2)redirect是服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的地址。


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_数据_06


2。 从数据共享来说:


1)由于在整个定向的过程中用的是同一个request,因此forward会将request的信息带到被重定向的jsp或者servlet中使用。即可以共享数据


2)redirect不能共享


3.从运用的地方来说


1)forword 一般用于用户登录的时候,根据角色转发到相应的模块


2) redirect一般用于用户注销登录时返回主页面或者跳转到其他网站


4。 从效率来说:


1)forword效率高,而redirect效率低


5.从本质来说:


forword转发是服务器上的行为,而redirect重定向是客户端的行为


6.从请求的次数来说:


forword只有一次请求;而redirect有两次请求,


7.redirect属于临时重定向


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_MVC_07

返回普通的Java类型
返回类型为Object,一般使用带Getter,Setter方法的模型类
结合@ResponseBody使用,表示将对象序列化后的数据放在响应体返回
在SpringBoot中默认响应的Content-Type为 application/json
非字符串对象会自动序列化为 json 字符串

@ResponseBody 表示将控制器方法的返回序列化作为响应体内容返回前端。 根据之前《控制器方法的返回》说明,使用@ResponseBody注解: 1.返回类型为String,表示响应Content-Type: text/plain,且响应体为控制器方法的字符串返回值 2.返回类型为普通Java类型,表示响应Content-Type: application/json,以返回对象序列化为json后 作为响应体。 3.@ResponseBody可以使用在类上,表示该类中所有方法都是默认以返回值作为响应体,也就是所 有方法都使用@ResponseBody。 注意:如果返回值为null,表示响应体内容为空

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_java_08


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_MVC_09


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_java_10


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_Spring MVC接口重复提交 注解_11

组合注解 可以使用组合注解来完成同时定义多个注解的效果,如:@RestController,@GetMapping,@PostMapping 说明该注解使用在类上,和使用两个注解@Controller,@ResponseBody在类上意思一样 @GetMapping即是:@RequestMapping(method = RequestMethod.GET) @PostMapping即是:@RequestMapping(method = RequestMethod.POST)

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_java_12

@PathVariable 一般的 URI 服务路径都是固定的,SpringMVC提供了 restful 风格可以变化的 URI。{}是将服务路径 URI 中的部分定义为变量,之后在方法参数中获取该路径变量。

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_spring_13


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_spring_14


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_spring_15

@RequestParam 当请求数据要绑定到某个简单对象时,可以使用@RequestParam。 URL 中的请求数据queryString请求头,Content-Type为表单默认提交的格式 application/x-www-form-urlencoded ,请求体中 的数据 请求头,Content-Type为 multipart/form-data ,请求体中的数据。 form-data 可以提交文本 数据,也可以提交二进制文件。 以上简单对象包括:基本数据类型、包装类型、MultipartFile(接收二进制文件) 需要注意@RequestParam注解参数默认为 required=true ,如果不传该参数就会报错,需要指定 为: @RequestParam(required = false) 。

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_java_16


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_java_17

POJO(Plain Ordinary Java Object):简单的 java 对象,实际就是属性提供了Getter,Setter方法的 普通对象。 使用 java 对象和使用@RequestParam注解非常类似,只是有点细节不同: @RequestParam是以方法参数变量名和传入的键对应,POJO对象作为方法参数时,是以POJO对 象中的属性名对应传入的键 @RequestParam默认必须传入该请求数据,而 POJO 对象是根据请求数据来填充属性,如果请求 数据没有,则属性就是默认值

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_数据_18


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_MVC_19


POJO 对象同样可以直接获取 form-data 方式的数据,包括二进制文件


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_Spring MVC接口重复提交 注解_20


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_数据_21

@RequestBody 当请求的数据类型Content-Type为 application/json 时,需要显示的使用@RequestBody注解。

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_Spring MVC接口重复提交 注解_22


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_Spring MVC接口重复提交 注解_23

@RequestPart 对于请求的数据类型Content-Type为 multipart/form-data 时,二进制文件除了以上 @RequestParam和 POJO 对象的方式外,还可以使用@RequestPart。

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_spring_24


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_Spring MVC接口重复提交 注解_25


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_MVC_26

Servlet API
在控制器方法参数中,可以使用Servlet相关API,SpringMVC会自动将相关Servlet对象装配到方法参数
中,如 HttpServletRequest 、 HttpServletResponse 、 HttpSession 等

使用注解实现简单的登录

实现注册、并将User对象保存在session中

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_数据_27


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_java_28

MVC模式登录: Model:

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_java_29


View:

Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_spring_30


Controller:


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_java_31


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_数据_32


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_java_33


Spring MVC接口重复提交 注解 spring mvc常用的注解有哪些_MVC_34