zoukankan      html  css  js  c++  java
  • hj-springmvc

    官方文档: springmvc官方文档 ;

    编程帮文档: 编程帮 ;

    源码解析 : java知音 .

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

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

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

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

    运行原理:

    • 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

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

  • 相关阅读:
    HDU 5642 King's Order 动态规划
    HDU 5640 King's Cake GCD
    HDU 5641 King's Phone 模拟
    HDU 5299 Circles Game 博弈论 暴力
    HDU 5294 Tricks Device 网络流 最短路
    HDU 5289 Assignment rmq
    HDU 5288 OO’s Sequence 水题
    星际争霸 虚空之遗 人族5BB 操作流程
    Codeforces Beta Round #3 D. Least Cost Bracket Sequence 优先队列
    Codeforces Beta Round #3 C. Tic-tac-toe 模拟题
  • 原文地址:https://www.cnblogs.com/hua-jian/p/14024131.html
Copyright © 2011-2022 走看看