接收JSON对象,  需要使⽤ @RequestBody 注解  
  
 7.获取URL中参数@PathVariable 
  path variable: 路径变量  
  和字⾯表达的意思⼀样, 这个注解 主要作⽤在请求URL路径上的数据绑定  
   
  
  
  
  如果⽅法参数名称和需要绑定的 URL中的变量名称⼀致时 , 可以简写,  不⽤ 给@PathVariable的属性赋 值, 如上述例⼦中的id变量  
  如果⽅法参数名称和需要绑定的 URL中的变量名称不⼀致时 ,  需要@PathVariable的属性value赋值 ,  
  如上述例⼦中的userName变量 
     8.上传⽂件@RequestPart 
 

 9.获取Cookie/Session 
 1.回顾 Cookie 
  HTTP 协议⾃⾝是属于 "⽆状态" 协议.  
  "⽆状态" 的含义指的是: 默认情况下 HTTP 协议的客⼾端和服务器之间的这次通信, 和下次通信之间没有直接的联系.  但是实际开发中, 我们很多时候是需要知道请求之间的关联关系的.  
   Cookie:类似于医院就诊卡,随时可以获取,来就可以办新的卡 
   Session:类似与服务器在就诊卡记录里面的信息 
  2.理解Session 
 Session 默认是保存在内存中的. 如果重启服务器则 Session 数据就会丢失
  Session是服务器为了保存⽤⼾信息⽽创建的⼀个特殊的对象  
   
  1.  当⽤⼾登陆的时候, 服务器在 Session 中新增⼀个新记录, 并把 sessionId返回给客⼾端. (通过  
  HTTP 响应中的 Set-Cookie 字段返回).  
  2.  客⼾端后续再给服务器发送请求的时候, 需要在请求中带上 sessionId. (通过 HTTP 请求中的  
  Cookie 字段带上).  
  3.  服务器收到请求之后, 根据请求中的 sessionId在 Session 信息中获取到对应的⽤⼾信息, 再进⾏后 续操作.找不到则重新创建Session, 并把SessionID返回  
  3.Cookie 和 Session 的区别 
  1.Cookie 是 客⼾端保存⽤⼾信息 的⼀种机制. Session 是 服务器端保存⽤⼾信息的⼀种机制.  
   2.Cookie 和 Session之间主要是通过  SessionId 关联 起来的, SessionId 是 Cookie 和 Session 之间的 桥梁  
   3.Cokie 和 Session 经常会在⼀起配合使⽤. 但是 不是必须配合 .  
   4.完全可以⽤ Cookie 来保存⼀些数据在客⼾端. 这些数据不⼀定是⽤⼾⾝份信息, 也不⼀定是  
  SessionId  
   5.Session 中的sessionId 也不需要⾮得通过 Cookie/Set-Cookie 传递,  ⽐如通过URL传递.  
  4.获取Cookie@CookieValue

 5.获取Session@SessionAttibute
  Session 存储和获取  
  Session是服务器端的机制, 我们需要 先存储, 才能再获取  
  Session 也是基于 HttpServletRequest 来存储和获取的 
    Session读取 
  简洁获取 Session(1) 
  (2) 
 
 
 10.获取Header
10.获取Header

   简洁获取 Header  
  三.响应@Controller
三.响应@Controller
 1.返回静态⻚⾯ 
  创建前端⻚⾯ index.html(注意路径要在一个路径里面)  
  我们需要把  @RestController  改为  @Controller 
 
 @RestController 、 @Controller区别
 所以前⾯使⽤的 @RestController 其实是返回的数据. 
  @RestController = @Controller + @ResponseBody  
  @Controller  : 定义⼀个控制器, Spring 框架启动时加载,  把这个对象交给Spring管理.  
  @ResponseBody   : 定义 返回数据 格式为⾮视图,  返回⼀个 text/html 信息 
 
 2.返回数据@ResponseBody
 @ResponseBody 既是类注解, ⼜是⽅法注解
 
 因为@Controller只是把对象交给Spring管理,不能返回数据,所以必须+@ResponseBody
 
 3 返回HTML代码⽚段 
  后端返回数据时, 如果数据中有HTML代码, 也会被浏览器解析  
 响应中的 Content-Type 常⻅取值有以下⼏种: 
  text/html  : body 数据格式是 HTML  
  text/css  : body 数据格式是 CSS  
  application/javascript  : body 数据格式是 JavaScript  
  application/json  : body 数据格式是 JSON 
   4 返回JSON 
 Spring MVC 也可以返回JSON ,后端⽅法返回结果为对象

 5 设置状态码
 

 3.练习. 
 1.加法计算器
 2. 留⾔板
 3..2 ⽤⼾登录
 4.实现服务器端代码
 1 .lombok介绍 
  ⼀个新的⼯具包 lombok  
  Lombok是⼀个Java⼯具库,通 过添加注解的⽅式 ,简化Java的开发.  
  简单来学习下它的使⽤  
 1. 引⼊依赖 
    @Data = @Getter + @Setter + @ToString + @EqualsAndHashCode @RequiredArgsConstructor  
  + @NoArgsConstructor 
 

 2.更快捷的引⼊依赖


 2.服务器代码实现( 留⾔板)
  定义留⾔对象 MessageInfo 类  
    创建 MessageController 类  
   
  3.调整前端⻚⾯代码 
  图书管理系统
 5.应⽤分层

  按照上⾯的层次划分, Spring MVC 站在后端开发⼈员的⻆度上, 也进⾏了⽀持, 把上⾯的代码划分为三 个部分:  
  1.请求处理、响应数据 :负责,接收⻚⾯的请求,给⻚⾯响应数据.  
  2.逻辑处理 :负责业务逻辑处理的代码.  
  3.数据访问: 负责业务数据的维护操作,包括增、删、改、查等操作.  
  这三个部分, 在Spring的实现中, 均有体现 
   Controller:控制层 。接收前端发送的请求,对请求进⾏处理,并响应数据。  
  Service:业务逻辑层 。处理具体的业务逻辑。  
  Dao:数据访问层 ,也称为持久层。负责数据访问操作,包括数据的增、删、改、查. 
  
   MVC架构模式由三部分组成 , 分别是: 模型(Model), 视图(View)和控制器(Controller).  
  三层架构将业务应⽤划分为 :表现层, 业务逻辑层, 数据访问层  
    1. 代码拆分


               Http相关对象(获取session、Header/设置状态码)
  1.HttpServletRequest re;获取session 
   2.HttoSession se=re.getSeession();//通过获取Session,来 
  3.se.setAttribute("name","value")使⽤指定的名称绑定⼀个对象到该 session 会话,来储存 
  4.se.getAttribute("name")通过se,来获取对象 
           注解
 @RestController//其实是返回的数据.==@ResponseBody返回数据+@Controller响应静态
 @RequestMapping("/user")//路由映射
 @RequestParam(value="time",required=false)//后端参数重命名
 @RequestBody //接收JSON类型的参数
 @PathVariable//接收路径参数
 @RequestPart: 上传⽂件
 @CookieValue("bite")//从Cookie中获取值
 @SessionAttribute(value="username",required=false)//从Session中获取值
 @RequestHeader("User-Agent")//从Header中获取值
 @Controller响应静态//把这个对象交给Spring管理. 默认返回 视图.
 @ResponseBody返回数据
  总结 
   学习Spring MVC, 其实就是学习各种Web开发需要⽤的到注解  
   a.  @RequestMapping: 路由映射  
  b.  @RequestParam: 后端参数重命名  
  c.  @RequestBody: 接收JSON类型的参数  
  d.  @PathVariable: 接收路径参数  
  e.  @RequestPart: 上传⽂件  
  f.  @ResponseBody: 返回数据  
  g.  @CookieValue: 从Cookie中获取值  
  h.  @SessionAttribute: 从Session中获取值  
  i.  @RequestHeader: 从Header中获取值  
  j.  @Controller: 定义⼀个控制器, Spring 框架启动时加载, 把这个对象交给Spring管理. 默认返回  
  视图.  
  k.  @RestController: @ResponseBody + @Controller 返回数据  
  2.  Cookie 和Session都是会话机制,  Cookie是客⼾端机制, Session是服务端机制 . ⼆者通过SessionId  
   来关联. Spring MVC内置HttpServletRequest, HttpServletResponse两个对象. 需要使⽤时, 直接在  
  ⽅法中添加对应参数即可,  Cookie和Session可以从HttpServletRequest中来获取, 也可以直接使⽤  
  HttpServletResponse设置Http响应状态码 .  
  3.  Java EE学习阶段会涉及较多⼯具, 插件的学习, 来帮助我们提⾼开发效率. ⽐如Postman, lombok, EditStarter, 后⾯还会继续学习其他的⼯具或插件.