SpringMVC简介及工作原理
SpringMVC是Spring框架提供的一个实现webMVC设计模式的轻量级框架它于Sturts2框架一样,都属于MVC框架
三层架构:
表现层:
web层,用来和客户端进行数据交互的,表现层一般会采用MVC的设计模式
业务层:
处理公司具体的业务逻辑
持久层:
用来操作数据库的
MVC的设计模型:
MVC的全称是Model View Controller 模型视图控制器,每个部分都各司其职
1.Model:数据模型,JavaBean(实体类)对象,用来进行数据封装的
2.View:视图,具体指的是我们Jsp,HTML,用来展示数据,给用户看的
3.Contrller:用来接收用户的请求,整个流程的控制器,用来进行数据校验等
SpringMVC工作原理:
1、 用户发送请求至前端控制器DispatcherServlet。
2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、 DispatcherServlet调用HandlerAdapter处理器适配器。
5、 HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6、 Controller执行完成返回ModelAndView。
7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
9、 ViewReslover解析后返回具体View。
10、 DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11、视图渲染结果会返回给客户端浏览器显示。
SpringMVC特点:
1,是Spring框架的一部分,可以方便的利用Spring提供的功能
2,灵活性强,易于其他框架继承
3,提供了DispatcherServlet,使开发人员无需开发额外的控制器对象
4,可自动绑定用户输入,并能正确的转换数据类型
5,内置了常见的校验器,可以校验用户输入,如果不能通过,那么就会重定向到输入表单
6,支持国际化,可以根据用户区域显示多国语言
7,支持多种视图技术
8,使用基于XML配置文件,在编译后,不需要从新编译应用程序
实例代码:
1,导入jar包
2,编写web.xml
在上述代码中<load-on-startup>元素和<init-param>元素都是可选的,如果<load-on-startup>元素的值为1,则在应用程序启动时会立即加载该Servlet;
如果<load-on-startup>元素不存在,则应用程序会在第一个Servlet请求时加载该Servlet。如果<init-param>元素存在并且通过其子元素配置了
SpringMVC配置文件的路径,则应用程序在启动时会加载配置路径下的配置文件;如果没有<init-param>元素配置,则应用程序会默认到WEB-INF目录下
寻找如下命名方式的配置文件:servletName-servlet.xml这个servletName指的是部署在web.xml中的DispatcherServlet的名称,
在上面web.xml中的配置代码即为Springmvc,- servlet.xml是配置文件的固定写法
3,编写SpringMVC配置文件
首先定义了一个名称为"/firstcontroller"的Bean,该Bean会将控制器类FirstController映射到"/firstcontroller"请求中,
然后配置了处理器映射器BeanNameUrlHandlerMapping和处理器适配器SimpleControllerHandlerAdapter,其中处理器映射器用
于将处理器Bena中的name(url)进行处理器查找,而处理器适配器用于完成对FirstController处理器中的handlerRequest()方法的调
用,最后配置了视图解析器InternalResourceViewResolver来解析结果是,并将结果呈现给用户
注意:在Spring 4.0以后,就不需要配置处理器映射器BeanNameUrlHandlerMapping和处理器适配器SimpleControllerHandlerAdapter了
4,编写Controller类
5,jsp页面