#微信#Java全国统一卷之SpringMVC


#微信#Java全国统一卷之SpringMVC
文章图片
#微信#Java全国统一卷之SpringMVC
文章图片
#微信#Java全国统一卷之SpringMVC
在Java中大家都会或多或少的接触学习SpringMVC框架 , 这可能已经成为全国统一卷了 。 今天给大家分享一下一些最基础的东西 , 其中 , MVC的面试必问部分 , 感觉对正在找工作的小伙伴 , 会有一点帮助吧 , 就是MVC的执行流程 。
1、SpringMVC的相关概念

2、SpringMVC的执行流程(面试)
【#微信#Java全国统一卷之SpringMVC】3、SpringMVC中的异步文件上传
4、SpringMVC中的类型转换器
1 , SpringMVC是一种基于Java , 实现了Web MVC设计模式 , 请求驱动类型的轻量级Web框架 , 即使用了MVC架构模式的思想 , 将Web层进行职责解耦 。 基于请求驱动指的就是使用请求-响应模型 , 框架的目的就是帮助我们简化开发 , SpringMVC也是要简化我们日常Web开发 。 是一个MVC的Web层框架 , 它采用请求响应模型它可以简化Web开放 , springmvc版hello world 。 编写SpringMVC的配置文件它存放的路径有2种方式 , 存放在WEB-INF/下面 , 但是它的名字有规则 , 这就是所谓的约定-契约 。 它必须在web.xml中配置一个DispatcherServlet的servlet-name节点的-servlet.xml , 存放在resources下面 , 不过需要在web.xml中配置一个DispatcherServlet中的servlet-name节点中配置init-param节点 。 在web.xml中添加一个Servlet , 这个Servlet必须是DispatcherServlet在配置的时候要加上on-load-startup , 初始值<=1的整数 。 然后在里面关联上springmvc-servlet.xml配置文件 , 把它作为Servlet的上下文参数 。
有一个新的请求 , 是sayHello它要跳到sayHello.jsp视图 。 该如何处理?方法:在springmvc的配置文件中添加一个bean , 同时编写一个新的控制器类Controller.这和传统的Servlet来讲是不是觉得差不多 。 所以早期的SpringMVC框架不流行 。 最后流行起来的原因是:SpringMVC的版本进行了升级 , 提供了注解驱动版 。 注解驱动版可以实现1个控制器对应多个请求 。
2、SpringMVC的核心组件 , Handler处理器 , 必须要继承AbstractController处理器映射器BeanNameUrlHandlerMapping:通过请求的名字找到处理器(Controller类)SimpleUrlHandlerMapping:简单的url找到处理器的处理器映射器DefaultAnnotationHandlerMapping:默认的注解方式的处理器映射器 , 使用注解的时候不需要用户去写 。 视图解析器作用:是根据逻辑视图名找到物理视图的解析器渲染是输出 。 ModelAndView:模型视图对象它的作用是用来封装视图和模型数据 。 DispatcherServlet :是spingMVC框架启动的入口 , 所以学习源代码 , 就是看这个类和它关联的类 , HandlerAdapter:处理器适配器
springMVC的执行流程 , 用户发送请求到DispatcherServlet , DispatcherServlet调用HandlerMapping 。 HandlerMapping根据请求映射url找到HandlerIntercepter拦截器组和Handler 。 然后框架把HandlerIntercepter和Handler对象封装到一个HandlerExecutionChain对象中.将该对象返回给DispatcherServlet.调用处理器适配器HandlerAdapter , 找到合适的Handler并调用Handler进行用户请求的处理 。 (编码的地方)Handler处理完毕后 , 会创建一个ModelAndView对象 , 该对象封装2个内容 , 分别是逻辑视图名(真实的页面的对应的一个逻辑名)和Model , 该Model里面放物理视图需要的数据 , 这些数据是来渲染到物理视图的 。 ModelAndView=Model(Map结构 , 存页面绑定的数据)+View(逻辑视图名)然后将这个对象返回.HandlerAdapter将ModelAndView返回给 DispatcherServlet获得ModelAndView , 利用ViewResolver(视图解析器)解析出物理视图名 。 将物理视图给DispatcherServlet在ModelAndView获得封装的Model中的数据 , 对物理视图进行渲染 。 渲染视图完毕后 , 将视图响应给浏览器 。