1.HTTP基础
Spring MVC框架用于做web开发,web开发的基础是HTTP协议。
(1) HTTP流:当客户端与服务端进行信息交互时,过程表现为以下几步
① 打开一个TCP连接,TCP连接被用来发送一条或多条请求,以及接受响应消息。客户端可能打开一条新的连接或重用一个已经存在的连接,或者也可能打开几个新的TCP连接连向服务端。
② 发送一个HTTP报文:HTTP报文是语义可读的。(浏览器向服务器发送一段消息)
③ 读取服务端返回的报文信息(服务器读到消息处理后返回信息)
④ 关闭连接或者为后续请求重用连接。
2.Spring MVC
MVC是一种设计模式,用于将复杂代码分为三个层次,与服务端三层架构不同。Controller负责调度,view视图层用于渲染展示,model模型层是它们联系的纽带。
2.2.返回网页的响应方式举例
//响应html给前端
@GetMapping("/teacher")
public ModelAndView getTeacher(){
ModelAndView modelAndView = new ModelAndView();
//往对象里传入值
modelAndView.addObject("name", "张三");
modelAndView.addObject("age", "30");
//设置模板的名字
modelAndView.setViewName("/demo/view");//templates下的下级目录,templates这级目录不用写
return modelAndView;
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--利用模板引擎的语法动态传入老师的性别和年龄
th thymeleaf的缩写
th:text="" 的意思是p内部的文本等于引号内的变量
th:text="${name}" 这里的name就是从model中取得的name的值
-->
<p th:text="${name}"></p>
<p th:text="${age}"></p>
</body>
</html>
另一种方式返回动态html
//另一种方法返回html给前端,返回类型String 指的是返回的是view视图层的路径
//需要考虑参数中加入Model以储存model数据
@GetMapping("/school")
public String getSchool(Model model){
model.addAttribute("name", "大学");
model.addAttribute("age", "100");
return "/demo/view";//返回的是view 模板的路径
}
/**
* 上面的方法将model和view的数据都撞到一个对象里,
* 下面的方法将model数据装入参数中,直接返回view视图
*/
除此之外,一般在异步请求之中,响应Json数据。@ResponseBody用于将对象封装为json返回给前端。