Spring MVC入门学习—体系结构及环境搭建

目录

一、什么是MVC?

 (1)JSP Model1

(2) JSP Model2

二、什么是SpringMVC?

三、Spring MVC框架搭建步骤

(1)创建项目,添加Web支持

(2)导入Spring MVC所需的Jar包,添加依赖

 (3)配置文件

(4)创建Controller  处理请求的控制器

(5)创建View

(6)部署运行

四、Spring MVC的架构图


一、什么是MVC?

MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。

MVC主要作用是降低了视图与业务逻辑间的双向偶合。

MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。

Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。

View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。

Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。

最典型的MVC就是JSP + servlet + javabean的模式。

 (1)JSP Model1

在web早期的开发中,通常采用的都是Model1。

Model1中,主要分为两层,视图层模型层

优点:架构简单,比较适合小型项目开发;

缺点:

  1. JSP职责不单一,职责过重,不便于维护;
  2. JSP页面身兼View和Controller两种角色,将控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性非常低,增加了应用的扩展性和维护的难度

(2) JSP Model2

视图View        JSP:负责生成动态网页

控制器Controller        Servlet:负责流程控制

模型Model        JavaBean:负责业务逻辑处理

 执行流程:

  1. 用户发请求

  2. Servlet接收请求数据,并调用对应的业务逻辑方法

  3. 业务处理完毕,返回更新后的数据给servlet

  4. servlet转向到JSP,由JSP来渲染页面

  5. 响应给前端更新后的页面

优点:

     1. 多视图共享一个模型,大大提高代码的可重用性

     2.MVC三个模块相互独立,松耦合结构

     3.控制器提高了应用程序的灵活性和可配置性

     4.有利于软件工程化管理

缺点:

        1.原理复杂

        2.增加了系统结构和实现的复杂性

        3.视图对模型数据的低效率访问

二、什么是SpringMVC?

Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。

Spring MVC特点

  1. 清晰的角色划分
  2. 灵活的功能配置
  3. 提供了大量控制器接口和实现类
  4. 真正做到了与View层的实现无关
  5. 国际化支持
  6. 面向接口编程
  7. Spring提供了Web应用开发的一整套流程,不仅仅MVC,他们之间可以很方便的结合一起

三、Spring MVC框架搭建步骤

(1)创建项目,添加Web支持

(2)导入Spring MVC所需的Jar包,添加依赖

 (3)配置文件

(3.1)在web.xml中配置Servlet

    <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-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>

contextConfigLocation的作用

        在web.xml中通过contextConfigLocation配置spring,contextConfigLocation参数定义了要装入的 Spring 配置文件。

        如果不写任何参数配置,默认的是在/WEB-INF/applicationContext.xml

       如果指定了要加载的文件,则会去加载相应的xml,而不会去加载/WEB-INF/下的applicationContext.xml。如果没有指定的话,默认会去/WEB-INF/下加载applicationContext.xml。

        如果想要自定义文件名,需要在web.xml中加入contextConfigLocation这个context参数

springmvc的默认配置文件是放在WEB-INF下的,并且要命名为*-servlet.xml,*为servlet—name,即上文中的"Springmvc"。

我们可以在web.xml中配置<init-param>来自定义文件名称和位置。

load-on-startup标签的作用

load-on-startup标签可以设置servlet的加载优先级别和容器是否在启动时加载该servlet,如下设置:

<load-on-startup>1</load-on-startup>

当值为0或者大于0时,代表容器启动时加载该servlet。正数的值越小,启动时加载该servlet的优先级越高。如果为负数,则容器启动时不会加载该servlet,只有该servlet被选择时才会加载。 

(3.2)创建SpringMVC的配置文件(springmvc-servlet.xml)

  1. 配置扫描器
  2. 配置注解驱动
  3. 配置视图解析器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!--    配置扫描器-->
    <context:component-scan base-package="com.etc.controller"></context:component-scan>
    <!--    配置注解驱动 -->
    <mvc:annotation-driven></mvc:annotation-driven>
    <!--    配置视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
</beans>

(4)创建Controller  处理请求的控制器

(5)创建View

(6)部署运行

四、Spring MVC的架构图

ntwxhn架构图引用自ntwxhn

 DispatcherServlet(前端控制器)

        Spring MVC最核心的类

        web.xml中配置

Handler(处理器):对应MVC中C(Controller)

        类型:Object

        作用:实际处理请求

        标注了@RequestMapping的所有方法都可以看作是一个Handler

ModelAndView

        逻辑视图名

        模型对象

核心组件

        HandlerMapping(处理器映射)

                BeanNameUrlHandlerMapping(默认)

                        将请求URL映射到同名的控制器Bean上

                DefaultAnnotationHandlerMapping

                        将请求映射到标注@RequestMapping注解的控制器和处理方法上                 RequestMappingHandlerMapping

        HandlerAdapter(适配器)

                AnnotationMethodHandlerAdapter

                RequestMappingHandlerAdapter

        ViewResolver(视图解析器)

                InternalResourceView

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值