什么是SpringMVC
SpringMVC就是Spring的一个模块,SpringMVC和Spring无需通过中间整合层进行整合
SpringMVC是一个基于MVC的web框架
什么是MVC,MVC在B/S系统下的应用
模型视图控制器
MVC是一个设计模式,MVC在B/S系统下的应用
M模型(pojo、action、service、dao)
C控制器(Controller)请求模型进行处理、视图渲染(将模型数据填充到request域)
request请求到C(Controller)
V视图(View)
B/S系统下模型无法将数据填充到视图
Spring的框架
前端控制器(DispatcherServlet接收用户请求、响应)请求查找Handler,请求适配器执行
Handler处理器,平常叫做Controller,
HandlerExecutionChain{
Interceptor//拦截器(可以有多个拦截器)
Handler
}
HandlerMapping处理器映射器,返回一个执行链
HandlerAdapter处理器适配器,去执行Handler,返回ModelAndView
视图:
Viewresolver:视图解析器
返回一个真正的物理视图(view)
SpringMVC框架的步骤:
1、发起请求到前端控制器(DispatcherServlet)
2、前端控制器请求HandlerMapping查找Handler
可以根据xml配置、注解进行查找
3、处理器映射器HandlerMapping向前端控制器返回Handler
4、前端控制器调用处理器适配器去执行Handler
5、处理器适配器去执行Handler
6、Handler执行完成给适配器返回ModelAndView
7、处理器适配器向前端控制器返回ModelAndView
ModelAndView是SpringMVC的一个底层对象,包括了Model和View
8、前端控制器请求视图解析器去进行视图解析
根据逻辑视图名解析成真正的视图(JSP)
9、视图解析器向前端控制器返回View
10、前端控制器进行视图渲染
视图渲染将模型数据(在ModelAndView对象中)填充到request域
11、前端控制器向用户响应结果
重要的组件:
1、前端控制器DispatcherServlet(不需要程序开发)
作用:接收请求,响应结果,相当于转发器,中央处理器
有了DispatcherServlet减少了其他组件之间的耦合度
2、处理器映射器HandlerMapping(不需要程序员开发)
作用:根据请求的Url来查找Handler
3、处理器适配器HandlerAdapter
作用:按照特定的规则执行Handler
4、处理器Handler(需要程序员开发)
注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
5、视图解析器View resolver(不需要程序员开发)
作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
6、视图View(需要程序员开发jsp)
作用:view是一个接口,实现类支持不同的view类型(jsp、pdf...)
入门程序:
1、环境准备
数据库
jdk
eclipse
Spring的版本
将Spring的所有jar包加入工程(一定要包括Spring-webmvc)
2、确定需求
以案例作为驱动
Spring和mybatis使用一个案例(商品订单案例)
功能需求:商品的列表查询
3、 配置前端控制器
在web.xml中配置前端控制器
4、配置处理器映射器
在classpath下的Springmvc.xml中配置处理器映射器
org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping
5、配置处理器适配器
在classpath下的Springmvc.xml中配置处理器适配器
SimpleControllerHandlerAdapter适配器实现Controller接口的Handler
6、配置视图解析器
配置解析jsp的视图org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
7、开发Handler
需要实现Controller接口,才能由org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter适配器来执行
将编写的Handler在Spring容器中配置加载
8、部署调试地址
Tomcat的Debug支持热部署
设置步骤:
1、双击Tomcat服务器
2、在打开的服务器配置文件下面点击Modules
3、add
4、edit点开相应的工程,然后将前面的对勾去掉
Not Found404
1、当404后面没有地址的时候表示处理器映射器根据url找不到Handler
2、404后面跟随地址的时候表示处理器映射器根据url找到了Handler,转发的jsp页面找不到,说明jsp地址错误
网友评论