MVC架构与SpringMVC的简单理解

什么是MVC架构

MVC分别对应Model、View、Controller,即模型、视图、控制器。
模型层负责存储数据,视图层负责将信息展示给用户,控制器层负责协调模型层和视图层,它负责与视图层交互并根据用户的操作对模型层进行控制、修改等。

MVC架构将业务逻辑、数据、显示分离,提高了部分代码的复用性,降低了各个模块间的耦合性,可以使各个层级进行独立测试

如果项目使用MVC架构将会有以下几点好处:
1.生命周期成本低
2.方便部署
3.方便维护
典型的MVC架构就是JSP+Servlet+JavaBean的模式

Spring中的MVC

Spring MVC是spring框架的一部分,是一个基于java实现MVC的轻量级Web框架。
SpringMVC的特点:
1.轻量级,简单易学
2.高效,基于请求响应
3.约定优于配置
4.功能强大:支持RESTful、数据校验、格式化、本地化等。

Spring的Web框架围绕DispatcherServlet(调度Servlet)设计。

DispatcherServlet的作用就是将请求分发到不同的处理器,并且从Spring 2.5开始,使用Java 5或以上的用户可以使用注解进行开发,非常简单。
SpringMVC的流程如下图:
SpringMVC的工作流程
简单的Spring MVC样例:
1.首先我们需要配置web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
        <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>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>springMvc</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
</web-app>

2.我们需要配置springmvc的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- 配置处理器映射器 -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    <!-- 配置处理器适配器 -->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    <!-- 配置视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <!-- 注册我们的处理器,也就是controller注册到bean容器中! -->
    <bean class="com.hkd.controller.UserController" id="/hello"/>
</beans>

3.写一个controller即处理器:

package com.hkd.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 实现Controller接口,我们的类就是一个处理器了!
 */
public class UserController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        ModelAndView mv=new ModelAndView();
        mv.addObject("msg","Hello!!");
        mv.setViewName("hello");
        return mv;
    }
}

最后将项目发布并运行服务器,就可以通过对应的url地址来进行测试了!
注意:
测试时报错首先查看控制台报错信息!根据报错信息排查错误。
如果使用IDEA进行项目的编辑与测试,报404错误可以尝试查看out文件夹下是否自动打包了lib文件夹,如果没有则需要手动添加lib目录和依赖包!
总结:
本文主要简单解释了MVC架构思想和对于SpringMVC的简单理解以及简单样例,希望大家批评指正!


版权声明:本文为m0_57180152原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。