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开发,让代码实现更简单~

  • 相关阅读:
    3、Linux知识点/dos基础命令
    2、进制转换
    1、软件测试基础####################################################
    50.React跳转路由传参3种方法和区别
    49.react中使用less
    48.vue-awesome-swipe使用
    47、安装node-sass后运行报错
    46、VUE + JS 面试宝典
    45、导航钩子函数中使用next()和next('指定路径')的区别:
    44、css实现水波纹效果
  • 原文地址:https://www.cnblogs.com/hua-jian/p/14024131.html
Copyright © 2011-2022 走看看