三、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
具体可参考这里

这里说一下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推荐)等

你可能感兴趣的:(三、Spring In Web)