Spring MVC
Sadlay
Never Give Up
展开
-
SpringMVC(一)框架设计及流程
Spring MVC(一)框架设计及流程SpringMVC框架设计框架设计图如下上图是SpringMVC框架运行的流程。处理请求先到达控制器(Controller),控制器的作用是进行请求转发,这样它会根据请求的内容去访问模型层(Model);在现今互联网体系中,数据主要从数据库和NoSQL中来,而且对于数据库而言往往还存在事务的机制,为了适应这样的变化,设计者会把模型层再细分为两层,即服...原创 2018-11-13 19:04:22 · 750 阅读 · 0 评论 -
REST(三)处理HTTP状态码、异常和响应头
REST(三)处理HTTP状态码、异常和响应头之前的内容只是讨论了正确的处理结果,而没有讨论当没有找到资源时的处理或者发生异常时的处理。当发生资源找不到或者处理逻辑发生异常时,需要考虑的时返回给客户端HTTP抓鬼你太吗和错误消息的问题。为了简化这些开发,Spring提供了实体封装类ResponseEntity和注解@ResponseStatus。ResponseEntity可以有效封装错误消息和...原创 2018-11-23 12:29:52 · 2864 阅读 · 0 评论 -
REST(二)开发REST风格端点
REST(二)开发REST风格端点篇幅有限,这里我们就不在赘述service和dao的设计和实现了,如果需要可以文章末尾查看源码。我们先定义用户实体实体package com.lay.rest.entity;import com.lay.rest.entity.enumeration.SexEnum;/** * @Description: * @Author: lay * @...原创 2018-11-23 12:29:05 · 888 阅读 · 0 评论 -
REST(一)REST简述
REST(一)REST简述和Spring MVC整合在Http协议发展的过程中,提出了很多的规则,但是这些规则有些繁琐,于是又提出了一种风格约定,它就是REST风格。实际上严格地说它并不是一种协议和标准,而是一种风格。REST简述REST(Representational State Transfer)可以翻译为表现层状态转换。首先需要又资源才能表现,所以第一个名词是资源。有了资源也要根据需...原创 2018-11-23 12:27:42 · 620 阅读 · 0 评论 -
SpringMVC(十)获取请求头参数
SpringMVC(十)获取请求头参数在HTTP请求中,有些网站会利用请求头的数据进行身份验证,所以有时在控制器中还需要拿到请求头的数据。在spring mvc中可以通过注解@RequestHeader进行获取。下面先编写一个前台页面<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head...原创 2018-11-15 18:43:02 · 8909 阅读 · 0 评论 -
SpringMVC(九)控制器通知
SpringMVC(九)控制器通知在spring AOP中,可以通过通知来增强Bean的功能。同样地,spring MVC也可以给控制器增加通知,于是在控制器方法的前后和异常发生时去执行不同的处理这里涉及4个注解,分别是@ControllerAdvice、@InitBinder、ExceptionHandler和@ModelAttribute。@ControllerAdvice:定义一个控...原创 2018-11-15 18:41:15 · 666 阅读 · 1 评论 -
SpringMVC(八)转发与重定向
SpringMVC(八)转发与重定向关于转发与重定向的定义和区别网上已经有很多介绍了,这里就不在赘述了。下面通过一段代码简单的介绍下Spring MVC中如何使用转发与重定向package com.lay.mvc.controller;import org.springframework.stereotype.Controller;import org.springframework....原创 2018-11-15 18:40:01 · 233 阅读 · 0 评论 -
SpringMVC(七)拦截器
SpringMVC(七)拦截器当请求来到DispatcherServlet时,它会根据HandlerMapping的机制找到处理器,这样就返回一个HandlerExecutionChain对象,这个对象包含处理器和拦截器。这里的拦截器会对处理器进行拦截,这样通过拦截器就可以增强处理器的功能。拦截器的设计所有拦截器都要实现HandlerInterceptor接口。HandlerInterce...原创 2018-11-15 18:37:56 · 202 阅读 · 0 评论 -
SpringMVC(六)文件上传
SpringMVC(六)文件上传Spring MVC对上传文件的支持首先,DispatcherServlet会使用适配器模式,将HttpServletRequest接口对象转换为MultipartHttpServertRequest对象。MultipartHttpServetRequest接口拓展了HttpServletRequest接口的所有方法,而且定义了一些操作文件的方法,这样通过这些方...原创 2018-11-15 18:35:17 · 376 阅读 · 0 评论 -
SpringMVC(五)数据验证
SpringMVC(五)数据验证参数转换出来后,紧跟着往往是需要验证参数的合法性,因此SpringMVC也提供饿了验证参数的机制。一方面,SpringMVC支持JSR-303注解验证,在默认情况看下Spring Boot会引入关于Hibernate Validator机制来支持JSR-303验证规范;另外一方面,因为业务会比较复杂,所以需要自定义验证规则。JSR-303验证JSR-303主要...原创 2018-11-13 19:20:35 · 365 阅读 · 0 评论 -
SpringMVC(四)自定义参数转换规则
SpringMVC(四)自定义参数转换规则处理器获取参数逻辑当一个请求到来时,在处理器执行的过程中,它首先会从HTTP请求和上下文环境来得到参数,如果是简易的参数它会以简单的转换器进行转换,而这些简单的转换器是SpringMVC自身已经提供了的。但是如果转换HTTP请求体(Body),它就会调用HttpMessageConverter接口的方法对请求体的信息进行转换,首先它会判断能否对请求体进...原创 2018-11-13 19:17:10 · 1749 阅读 · 0 评论 -
SpringMVC(三)获取控制器参数
SpringMVC获取控制器参数在无注解下获取参数在没有注解的情况下,SpringMVC也可以获取参数,且参数允许为空,唯一的要求是参数名称和HTTP请求的参数名称保持一致。package com.lay.mvc.controller;import org.springframework.stereotype.Controller;import org.springframework....原创 2018-11-13 19:12:51 · 460 阅读 · 0 评论 -
SpringMVC(二)SpringMVC+MyBatis+Thymeleaf实例
SpringMVC实例本文采用的环境是Spring Boot2+MyBatis+thymeleaf数据库建表CREATE TABLE `t_person` ( `id` int(12) NOT NULL AUTO_INCREMENT, `person_name` varchar(60) NOT NULL, `note` varchar(256) DEFAULT NULL, P...原创 2018-11-13 19:06:48 · 876 阅读 · 0 评论 -
REST(四)使用RestTemplate
REST(四)使用RestTemplate在当今微服务中,会将一个大系统拆分为多个微服务系统。按微服务应用的建议,每个微服务系统都会暴露Rest风格的URI请求给别的微服务系统所调用。为了方便完成系统之间的相互调用,spring还给予了模板类RestTemplate,通过它可以很方便地对Rest请求进行系统之间的调用,完成系统之间的数据集成。使用RestTemplate请求后端RestTem...原创 2018-11-23 12:30:46 · 291 阅读 · 0 评论