文档介绍:Spring MVC
蒋中洲
课程内容
Spring MVC框架简介
HTTP请求地址映射
HTTP请求数据的绑定
数据模型控制
视图及解析器
springMVC***
springMVC文件上传
springMVC的异常处理
SpingMVC和Hibernate整合
SpringMVC和MyBatis整合
SpringMVC简介
Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据、业务与展现进行分离。从这样一个角度来说,Spring MVC和Struts、Struts2非常类似。Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler。通过可配置的handler mappings、view resolution。Spring MVC请求处理的整体流程如图。
SpringMVC简介
,必须以***@Controller注解标记。当控制器类接收到一个请求时,它会在自己内部寻找一个合适的处理方法来处理请求。使用***@RequestMapping注解将方法映射到一些请求上,以便让该方法处理那些请求。这种方法就像一般的类中的方法,方法名参数列表和返回值并不像Struts2之类的框架有很强的限制。
控制器在选择好适合处理请求的方法时,传入收到的请求(根据方法参数类型,可能以不同的类型传入),并且调用该方法中的逻辑来进行处理(也可以是调用Service来真正处理)。方法逻辑可能也会在参数中添加或者删除数据。处理方法处理完之后,会委派给一个视图,由该视图来处理方法的返回值。处理程序的返回值并不代表视图的具体实现,可以只是String类型,代表视图名,甚至是void(这时候Spring MVC可以根据方法名或者控制器名找默认视图)。
Spring MVC框架结构
DispatcherServlet
HandlerMapping
HandlerAdapter
Handler
View
(JSP/XML/PDF,...)
2
3
ModelAndView
5
4
ViewResolver
6
Model
7
8
1
Spring MVC框架结构
.;
...
***@Controller ①将UserController变成一个Handler
***@RequestMapping(“/user”) ②指定控制器映射的URL
public class UserController {
***@RequestMapping(value = “/register”) ③处理方法对应的URL,相对于②处的URL
public String register() {
return “user/register”; ④返回逻辑视图名
}
}
框架的实现者设计思路
DispatcherServlet
DefaultAnnotation
HandlerMapping
AnnotationMethod
HandlerAdapter
UserController
2
3
ModelAndView
"user/register"
5
4
InternalResource
ViewResolver
6
Model
7
8
1
HTTP请求映射原理
HTTP请求报文
Handler
处理方法
Spring
MVC
框架
WEB容器
Spring MVC进行映射的依据
通过URL限定:URL表达式
***@RequestMapping不但支持标准的URL,还支持Ant风格(即?、*和**的字符,)的和带{xxx}占位符的URL。以下URL都是合法的:
/user/*/createUser
匹配/user/aaa/createUser、/user/bbb/createUser等URL。
/user/**/createUser
匹配/user/createUser、/user/aaa/bbb/createUser等URL。
/user/createUser??
匹配/user/createUseraa、/user/createUserbb等URL。
/user/{userId}
匹配user/123、user/abc等URL。
/user/**/{userId}
匹配user/aaa/bbb/123、user/aaa/456等URL。
company/{companyId}/user/{userId}/detail