MVC设计模式
MVC是 Model、View、Controller的缩写,分别代表web应用程序的三种指责。
- 模型(Model):用于存储数据以及处理用户请求的业务逻辑
- 视图(view):向控制器提交数据,现实模型中的数据
- 控制器(Controller):根据试图提供的请求判断将请求和数据交给那个模型处理,将处理的有关结果交给那个视图更新显示。
基于Servlet的MVC模式的具体实现
- 模型:一个或多个JavaBean对象,用于存储数据(实体模型,由JavaBean类创建)和处理业务逻辑(业务模型,由一般的Java类创建)。
- 视图:一个或多个JSP页面,向控制器提交数据和为模型提供数据显示,JSP页面主要是使用HTML标记和JavaBean标记来显示数据。
- 控制器:一个或多个Servlet对象,根据试图提交的请求进行控制,即将请求转发给处理业务逻辑的JavaBean,并将处理结果存放到实体模型JavaBean中,输出给视图显示。 图1
Spring MVC的工作流程
- 客户端请求提交到DispatcherServlet。
- 由DispatcherServlet控制器寻找一个或多个HandlerMapping,找到处理请求的Controller。
- DispatcherServlet将请求提交到Controller
- Controller调用业务逻辑后返回ModelAndView
- DispatcherServlet寻找一个或多个ViewResolver视图解析器,找到ModelAndView指定的视图
- 视图负责将数据显示到客户端
Spring MVC接口
- DispatcherServlet:Spring MVC所有的请求都经过DispatcherServlet统一分发,在DispatcherServlet将请求分发给Controller之前需要借助Spring MVC提供的HandlerMapping定位到具体的Controller。
- HandlerMapping:负责完成客户请求到Controller的映射。
- Controller:处理用户请求,和Servlet扮演的角色一致,一旦Controller处理完用户请求,将返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。
- ViewResolver:视图解析器,在Web应用中负责查找View对象,从而将相应结果渲染给客户。
Spring NVC注解
- @Controller:声明某个类的实例是一个控制器
- @RequestMapping:在基于注解的控制器类中可以为每个请求编写对应的处理方法
- @Service
- @Autowired
拦截器的定义
在Spring MVC框架中定义一个拦截器需要对拦截器进行定义和配置,定义一个拦截器可以通过两种方式:
- 实现HandlerInterceptor接口或者继承HandlerInterceptor接口
- 实现WebRequestInterceptor接口或者继承WebRequestInterCeptor接口
转自:saojiatete
网友评论