hj_springmvc

官方文档: springmvc官方文档 ;

编程帮文档: 编程帮 ;

源码解析 : java知音 .

MVC设计模式一般指MVC框架.M<model>数据模型,V<view>视图层,C<controller>控制器,MVC的主要目的是实现M和V的分离,结构清晰;

  • 视图层<view> : 格式化数据并呈现给用户,主要有数据展示,用户交互,数据验证,界面设计等功能;
  • 控制层<controller> : 接收并转发请求,对请求做好处理后,指定视图并将响应结果发送给客户端;
  • 数据模型层<model> : 负责数据逻辑(业务规则)的处理和实现数据操作(数据库中存取数据).

Spring MVC 主要由Dispatcher Servlet,处理器映射,处理器(控制器),视图解析器,视图组成.俩核心:

  • 处理器映射 : 选择使用某个控制器来处理请求;
  • 视图解析器 : 选择响应结果应如何渲染.

运行原理:

hj_springmvc

  • 1,http请求 : 客户端请求提交到DispatcherServlet;
  • 2,寻找处理器 : 由DispacherServlet控制器查询一个或多个HandlerMapping,找到处理请求的controller;
  • 3.调用处理器 : DispatcherServlet将请求提交到Controller;
  • 4 & 5,调用业务处理和返回结果 : Controller调用业务逻辑处理后,返回ModelAndView;
  • 6 & 7,处理视图映射并返回模型 : DispatcherServlet查询一个活多个ViewResoler视图解析器,找到ModelAndView指定的视图.
  • 8,Http响应 : 视图负责将结果显示到客户端.

mvc四个主要接口:

  • DispatcherServlet接口 : spring提供的前端控制器,统一分发请求.借助spring提供的HandlerMapping接口将请求定位到具体的controller;
  • HandlerMapping接口 : 完成client请求到controller的映射;
  • Controller接口 : 处理client请求,返回ModelAndView对象给DispatcherServlet前端控制器;
  • ViewResolver接口 : 视图解析器,在web应用中查找view对象,将对应结果渲染给客户端.

web.xml配置

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置springMVC需要加载的配置文件
        spring-dao.xml,spring-service.xml,spring-web.xml
        Mybatis - > spring -> springmvc
     -->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/spring-*.xml</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <!-- 默认匹配所有的请求 -->
    <url-pattern>/</url-pattern>
</servlet-mapping>

spring-web.xml

<!-- 配置SpringMVC -->
<!-- 1.开启SpringMVC注解模式 -->
<!-- 简化配置:
    (1)自动注册DefaultAnootationHandlerMapping,AnotationMethodHandlerAdapter
    (2)提供一些列:数据绑定,数字和日期的format @NumberFormat, @DateTimeFormat, xml,json默认读写支持
-->
<mvc:annotation-driven />

<!-- 2.静态资源默认servlet配置
    (1)加入对静态资源的处理:js,gif,png
    (2)允许使用"/"做整体映射
 -->
 <mvc:default-servlet-handler/>

 <!-- 3.配置jsp 显示ViewResolver -->
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
     <property name="prefix" value="/WEB-INF/jsp/" />
     <property name="suffix" value=".jsp" />
 </bean>

 <!-- 4.扫描web相关的bean -->
 <context:component-scan base-package="com.xxx.xxx.web" />

  

常用注解 : @Controller , @RequestMapping , @Resource , @Autowired , @ModelAttribute , @SessionAttributes ,

                  @PathVariable , @RequestParam , @ResponseBody , @Repository , @Component

hj_springmvc

 

一句话总结 : SpringMVC是目前最好的实现了MVC设计模式的框架,能与spring很好的衔接,是对MVC流程的进一步封装,屏蔽掉很多底层代码,以servlet为处理器替换传统的filter,开放出接口,简化开发者基于MVC模式的Web开发,让代码实现更简单~

上一篇:SpringMVC日常笔记记录02--springmvc请求处理过程


下一篇:springmvc