Spring-MVC

 Spring-MVC

SpringMVC是一种基于java实现MVC设计模型的请求驱动型轻量级Web框架

SpringMVC的作用:分离控制器,模型对象,过滤器以及处理程序对象的角色,这种分离让他们更容易被定制。

MVC通过注解让java成为处理请求的控制器,而无需实现任何接口,同时它还支持 RESTful 编程风格的请求。(RESTful 是一种框架约束条件和原则)

## 1.SpringMVC架构流程

1. 用户发送请求到前端控制器(Web.xml)DispacherServlet
2. DispatcherServlet收到请求调用HandlerMapping处理器映射器
3. 树立起映射器根据请求url找到具体的处理器,生成处理器对象以及处理拦截器对象一并返回给DispatchServlet
4. DispatcherServlet通过HandlterAdapter处理器适配器调用处理器
5. 执行处理器(后端控制器就是指Controller)
6. Controller执行完成返回ModelAndView
7. HandlerAdapter将controller执行结果返回给DispatcherServlet
8. DispatcherServlet将ModelAndView传给ModelAndView视图解析器
9. ViewReslover解析后返回具体View
10. DispatcherServlet对View进行渲染视图(即将模型数据填充到视图中)
11. DispatcherServlet响应用户

 

 

组件说明:

DispatcherServlet:前端控制器

用户请求到达前端控制器,他相当于mvc模式中的c,DispatcherServlet是整个控制流程的中心,由它调用其他组件处理用户的请求,DispatcherServlet的存在降低了组件之间的耦合性

HandlerMapping:处理器映射器

HandlerMapping负责根据用户请求url找到Handler处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等

Handler:处理器

Handler是继DispatcherServlet前端控制器的后台控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理

由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler

HandlAdapter:处理器适配器

通过HandlerAdapter对处理器进行执行,这就是适配器模式的应用,通过扩展适配器可以对更多类型的处理进行执行。适配器最终都可以使用usb接口进行连接

ViewResolver:视图解析器

View Resolver负责对处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,在生成View视图对象,最后对View视图对象,最后对View进行渲染将处理结果通过页面展示给用户

View:视图

springmvc框架提供了很多的view视图类型的支持,包括:jstlview、freemarkerView、pdfView等,我们常用的视图就是jsp

一般情况下需要通过页面标签或页面模板数据通过页面展示给用户,需要有程序员根据业务需求开发具体的页面

在springmvc的各个组件中,处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件。
需要用户开发的组件有handler、view

因为框架已经默认加载这些组件了,所以我们不需要做任何配置,就可以使用这些组件了。

2.SpringMVC执行流程

xml
1.首先要导入几个依赖
Spring的依赖:

org.springframework
spring-webmvc
${spring.version}

servlet的依赖:

javax.servlet
servlet-api
2.5
provided

jsp的依赖:

javax.servlet.jsp
jsp-api
2.0
provided

2.在webapp目录下创建login.jsp,以及在\webapp\WEB-INF\jsp目录下创建index.jsp

登录

主页


欢迎:${username}

 

3.在main目录下创建java目录,然后创建UserCountroller

@Controller
@RequestMapping("user")//一级访问路径
public class UserController {

//登录
@RequestMapping("login")//二级访问路径
public ModelAndView login(){

System.out.println("连接数据库查询...");

ModelAndView modelAndView = new ModelAndView();
//存储数据
modelAndView.addObject("username","张三");
//设置跳转页面
modelAndView.setViewName("/index.jsp");//转发到前端页面上,默认的是forword模式能够进行转发
return modelAndView;
}
}

4.在main目录下创建resource目录,然后创建springmvc.xml
//首先配置扫描注解下面的包

posted @ 2021-10-22 14:29  逆流而上的狂浪  阅读(94)  评论(0)    收藏  举报