SpringMVC
1、什么是SpringMVC
是一种轻量级的,基于MVC的web应用层框架,对Servlet封装
MVC:
M:Model,模型层,指javaBean,作用是==处理数据==
javaBean:
实体类,业务处理,即Service,Dao
V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,==展示数据==
C:Controller,控制层,指工程中的servlet,作用是==接收请求==和==响应浏览器==
2、springmvc流程
相关组件:
前端控制器(DispatcherServlet):接收请求,响应结果, 降低了组件之间的耦合性
2. 处理器映射器(HandlerMapping):根据URL去查找处理器
处理器适配器(HandlerAdapter):按照特定规则(HandlerAdapter要求的规则)去执行Handler
4. 处理器(Handler):即各个Controller(需要程序员去写代码处理逻辑的)
- 视图解析器(ViewResovler):进行视图解析,对返回的字符串,进行处理,可以解析成对应的页面
处理流程详解
1.用户发起请求到前端控制器(DispatcherServlet)
2、前端控制器请求处理器映射器(HandlerMapping)去查找处理器(Handle):通过xml配置或者注解进行查找
3、找到Handle以后,处理器映射器(HandlerMapping)向前端控制器返回执行链(HandlerExecutionChain)(包括生成处理
器对象及处理器拦截器等)
4、前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(==Handler,即Controller, 即Servlet层==)
5、处理器适配器(HandlerAdapter)去执行Handler中的方法
6、Handler执行完后,给处理器适配器返回ModelAndView
7、处理器适配器向前端控制器返回ModelAndView
8、前端控制器请求视图解析器(ViewResolver)去进行视图解析,解析成view
9、视图解析器(ViewResolver)向前端控制器返回View
10、前端控制器对视图进行渲染
11、前端控制器向用户响应结果
3、SpringMVC:具体实现流程
1、导入jar包
- commons-logging-1.1.1.jar
- spring-aop-5.2.16.RELEASE.jar
- spring-beans-5.2.16.RELEASE.jar
- spring-aspects-5.2.16.RELEASE.jar
- spring-context-5.2.16.RELEASE.jar
- spring-core-5.2.16.RELEASE.jar
- spring-expression-5.2.16.RELEASE.jar
- spring-web-5.2.16.RELEASE.jar
- spring-webmvc-5.2.16.RELEASE.jar
2、发起了一个请求
<a href="test">请求</a>
3、在web.xml中配置了核心控制器(前端控制器)
<servlet>
<!--注册DispatcherServlet-->
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 指定核心配置文件的位置 -->
<init-param>
<!--name值为固定内容-->
<param-name>contextConfigLocation</param-name>
<!--在src下配置的xml-->
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 启动tomcat就立即创建DispatcherServlet实例。数越小执行越早-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<!-- url-pattern:两种写法 1) *.do、 *.action、 *.mvc 2)斜杠 / -->
<url-pattern>/</url-pattern>
</servlet-mapping>
4、创建springmvc.xml核心配置文件
①:头部
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http:/