三、Spring|三、Spring In Web

0、SpringMVC大致流程 请求——>响应 前后端不分离: Request——>DispatcherServlet(前端控制)——>对应的Controller(处理请求)——>返回ModelAndVIew ——> 视图解析器 ——>Response
前后端分离: Request——>DispatcherServlet(前端控制)——>对应的Controller(处理请求)——>{要使用@ResponseBody将数据写入响应流}Response (数据)【前后端分离,路由由前端来做】
一、Controller使用到的注解

  • @Controller
  • @RestController
  • @RequestMapping/GetMapping/PostMapping
二、验证数据
使用Java Bean Validation API
具体可参考这里
【三、Spring|三、Spring In Web】这里说一下Java Bean validation API 和Hibernate Validation的关系,我理解是Java Bean validation API是官方发布的一个标准,并没有实现,或者说实现很烂。然后Hibernate Validation就是这个标准的实现。(就像开发中,你(Java官方)写了一个接口,包含了很多方法声明,但是没有编写它的实现类,而另一个人(Hibernate)实现了你的接口,并实现了接口声明的方法)
// 上面的链接中是利用代码实现的开始验证数据,下面是一个比较简单方法 // 要在要验证的Bean前面加上@Valid注解 // 但是光是使用@Valid注解,Spring返回的错误信息并不是像我们定义的那样,而是一个类似HTML的文件结构。 //这里可以在参数里加一个Error(org.springframework.validation.Errors)参数来获取错误信息 public String validationTest(@Valid User user,Errors errors){ if (errors.hasErrors()) { // 获取错误信息返回 } }

三、前后端分离
~ 后端工作 前端工作
前后端不分离 1.路由跳转 、 2.返回数据 显示内容
前后端分离 返回数据 1.显示内容、2.路由跳转
如果前后端不分离的话一般会用模板引擎,如JSP、FreeMarker、Thymeleaf(Spring推荐)等

    推荐阅读