掌握MVC编程思想
掌握SpringMVC运行原理核心组件
掌握SpringMVC基于配置的开发
掌握SpringMVC的urlpattern和静态资源放行方案
掌握SpringMVC的注解开发
一、SpringMVC入门
1. MVC介绍
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器 (controller)的缩写,它是一种软件设计典范,是一种软件架构设计分层模式。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
View(视图)是应用程序中处理数据显示的部分。
Controller(控制器)是应用程序中处理用户交互的部分。
最典型的MVC就是JSP + servlet + javabean的模式。
2.MVC发展历史
Model 1 (jsp+javabean)
Model 2 (jsp+servlet+javabean)
Model1和Model2的优缺点
Model 1:
Moel1的中心是ISP页面,JSP 页面中结合业务逻辑、服务端处理过程和HTML等,这样就在JSP页面中同时
实现了业务逻辑和流程控制。从而快速开发。
Model1的优缺点:
优点: 简单,快速开发,适用小规模开发:
缺点: 业务逻辑和表示逻辑混合在ISP页面中没有进行抽象和分离,JSP负载太大。所以非常不利于应用系统业务的重用和改动,不便于维护。
Model 2:
Model 2表示的是基于MVC模式的框架。通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。从而弥补了ModelI的不足。
Model2其实是在EModel1基础上又抽了-层控制层。
Model2优缺点:
优点: 具有组件化的优点从而更易于实现对大规模系统的开发和管理。职责划分清晰。
缺点: 不适合小项目开发。
3.目前市场上MVC框架
3.1 SpringMVC(主流MVC框架):是spring框架的一部分(子框架), 是实现对Servlet技术进行封装。
3.2 Struts框架
3.3 Jfinal框架
二、SpringMVC配置式开发
- SpringMVC运行原理(执行过程)
下面的图都是大同小异,核心都是相同的
2.需求:用户提交一个请求,服务端处理器接收到请求后,给出一条信息, 在相应页面中显示该条信息
3.开发步骤
3.1导入jar包
3.2配置web.xml,注册SpringMVC前端控制器(中央调度器)
3.3编写SpringMVC后端控制器
3.4编写springmvc配置文件,注册后端控制器(注意id写法格式)
配置式开发,注册后端控制器需要注意的问题
<!--注意id为'/'开头,以拦截内容结尾-->
<bean id="/my.do" class="cn.bjsxt.handlers.MyHandler"></bean>
3.5编写跳转资源页面
ModelAndView的对象的setViewName();来实现资源跳转
4.web.xml中urlpattern配置问题
4.1配置/和配置/*的区别
/*.do 拦截ur末尾为.do的请求
/* 拦截所有请求
/ 拦截请求和静态资源,不拦截jsp, jsp不是静态资源,也不是url
4.2静态资源无法访问解决方案(三种)
(1)静态资源无法访问的第一种解决方案
在web.xml中配置servlet-mappering标签
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
这样就可以放行掉想使用的静态资源,也可以*.js *.css
(2~3)其他两种方案都是在springmvc.xml下进行配置
静态资源无法访问的第二种解决方案
<mvc:default-servlet-handler/>
静态资源无法访问的第三种解决方案
<mvc:result location="/images/" mapping="/images/**"></mvc:result>
其中mapping内容表示:以image为请求路径下的所有资源都可以访问
三、SpringMVC注解式开发
1 搭建环境
1.1后端控制器无需实现接口,添加相应注解
1.2springmvc配置文件无需注册controller
在添加controller注解之后,类文件就添加实现类,重写也不再需要
1.3 springmvc配置文件中添加组件扫描器、注解驱动 <mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与 AnnotationMethodHandlerAdapter 两个bean,并提供了:数据绑定支持, @NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支 持(JAXB),读写JSON的支持(Jackson)等等。
- 注册组件扫描器的作用,就是用注解被扫描
- 注册注解驱动 : 能够自动注册处理器映射器 和 处理器适配器
2 涉及常用注解 @Controller、@RequestMapping(类体上【命名空间】、方法上)、@Scope
@RequestMapping("/springmvc") 该注解不但可以放在类体上还可以放在方法体上
3 视图解析器(前缀、后缀)
什么时候会用到视图解析器?
当文件的位置位于很多级文件夹下,写路径名非常的麻烦,这时我们想每次返回时只返回文件名,就需要用到视图解析器了.
使用视图解析器之后
实现思路: 可将路径的前缀,和文件名的后缀直接在springmvc文件中进行配置
一定要注意书写正确