SpringMVC(一)入门
一、简介
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,
即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,
通过实现Model-View-Controller模式来很好地将数据、业务与视图进行分离。
Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler。
通过可配置的HandlerMapping(映射处理器)、controller(控制器)ViewResolver( 视图解析器)进行mvc的模式的体现。
二、Spring Web MVC 的作用
√进行更简洁的Web层的开发;
√Web层进行解耦;
三、SpringMVC处理请求的过程

1、首先用户发送请求————>前端控制器
前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分。
2、 页面控制器接收到请求后,进行功能处理
首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;
处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);
3、前端控制器
前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;
前端控制器再次收回控制权,将响应返回给用户,至此整个结束。
四、核心架构图

五、开发的主要步骤
1、 DispatcherServlet在web.xml中的部署描述,从而拦截请求到Spring Web MVC
2、 HandlerMapping的配置,从而将请求映射到处理器
3、 HandlerAdapter的配置,从而支持多种类型的处理器
4、 ViewResolver的配置,从而将逻辑视图名解析为具体视图技术
5、处理器(页面控制器)的配置,从而进行功能处理
六、前期准备及过程理解
1、导入jar包

注意:后两个是到这里需要再添加的
2、web项目,需要有请求,需要配置DispatcherServlet---前端控制器(在web.xml中)
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
注:
<servlet>里面的是servlet的指定,
<servlet-mapping>是映射的指定的servlet,
<url-pattern>/</url-pattern>代表的是可以找DispatcherServlet的url地址,这里的/代表任何的请求都会调用,除了.jsp文件。
3、加载配置文件
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
注:这里的classpath是针对src开始的,ContextConfigLocation中的首字母要小写。
4、在测试类(这里可以代替Controller层)中加入映射方法

5、创建相关的.jsp文件:

6、配置.xml文件中的注解映射器
这里就是<init-param>中指定的:springmvc.xml文件
加上:

七、解释:
页面发送请求---/hello
然后会先到: <url-pattern>/</url-pattern> 上,
之后再通过映射,到 DispatcherServlet进行分发,
接着Controller层接收请求--@RequestMapping("hello"),
最后通过.setViewName("...jsp")进行页面的跳转。
浙公网安备 33010602011771号