发表于: 2020-06-28 22:41:11

1 1630


今天完成的事情:

了解springmvc执行流程

1.用Json Tag-lib 生成假数据,就得了个get接口.

2.本地运行Jetty:run 插件,修改端口号为8080,浏览器访问任意查询接口,判断是否可以正确返回数据

3.用Postman测试接口文档。

> DispatcherServlet是前端控制器,是整个springmvc的调度中心,主要是接收请求,请求别人处理数据,响应结果等作用(不需要程序员开发)

  >HandlerMapping是处理器映射器,它根据请求的url(Handler的url可通过在xml或注解来配置)在spring容器查找有没有符合url的方法的handler(不需要程序员开发)

  >HandlerExcutionChain,它可以理解为返回处理后的结果链,这个里面主要分两种:HandlerInterceptor处理器拦截器(一般有多个,在执行处理器之前进行预处理和后处理操作),Handler处理器(不需要程序员开发)

  >HandlerAdapter是处理器适配器,用来执行Handler处理器,不同的适配器能处理不同的处理器(不需要程序员开发)

  >Handler是处理器,它是我们主要写代码的地方,类似struts2时候的action,javaweb时的servlet,在项目的分层中它属于controller层,它必须按照适配器的指定规范来写,否则它就不是一个处理器(需要程序员开发)

  >ModelAndView是springmvc的一个底层对象,我们从数据库获取的数据以及视图的信息(url路径)存储在该对象中(需要我们创建)

  >ViewResolver是视图解析器,将ModelAnDView对象中的视图信息解析成一个View对象(其实就是拿到JSP,FrameMarker等视图的路径并解析成一个对应的JSP对象等或者说根据路径将对应的视图加载到内存当中形成一个view对象)(不需要程序员开发)

  >view是一个接口,支持不同的view类型,包含jsp,pdf等视图,不同类型的view需要不同的ViewResolver来解析(不需要程序员开发)


流程:

  1.请求发送到我们的服务器的第一道大门 DispatcherServlet

  2. DispatcherServlet调用HandlerMapping处理器映射器获取Handler处理器

  3.HandlerMapping返回一个执行链,包含处理器拦截器和处理器对象

  4.DispatcherServlet拿到Handler之后,交给HandlerAdapter去执行

  5.HandlerAdapter执行Handler

  6.Handler返回一个modelAndView对象,通过对象名可知对象中包含数据库和视图的信息

  7.HandlerAdapter返回modelAndView对象给DispatcherServlet

  8.DispatcherServlet把modelAndView交给ViewResolver视图解析器去解析该对象,说白了就是提取jsp          等视图url并解析成一个view对象

  9.view对象会自己的方法进行渲染,其实是将modelAndView里面的model数据提取放到request域中,视         图从request域中拿到数据形成一个完整的静态页面html

  10.返回给DispatcherServlet一个View对象

  11.响应html给客户端







<%@ page language="java" pageEncoding="utf-8" isELIgnored="false" %>
<%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %>
<json:object>
<json:object name="student">
<json:property name="student_name" value="韦延伦"/>
<json:property name="education" value="大专"/>
<json:property name="type" value="java"/>
<json:property name="age" value="24"/>
<json:property name="id" value="${id}"/>
</json:object>
<json:property name="code" value="200"/>
</json:object>

Controller

Controller
@RequestMapping("/task2")
public class StudentController {
@RequestMapping(value = "student/{id}", method = RequestMethod.GET)
public ModelAndView queryById(@PathVariable("id") Integer id) {
ModelAndView modelAndView = new ModelAndView("get");
       modelAndView.addObject("id", id);
       return modelAndView;
   }

}


jetty测试结果

postman测试结果


明天计划的事情:

把springmvc的注解了解清楚,进行ssm整合。

测试剩下的post,delete,put接口。
遇到的问题: 对于spring的注解使用还没有了解清楚,导致不知道怎么接收post接口发过来的参数.
收获:了解了get接口怎么发送数据。



返回列表 返回列表
评论

    分享到