• 【springMVC】了解springMVC


    1.什么是MVC

         MVC是一种软件架构模式(是一种软件架构设计思想),它将应用分为三块:

            1)M:Model(模型),负责业务处理及数据的收集

            2)V:View(视图),负责数据的展示

            3)C:Controller(控制器),负责调度。决定什么时候调用Model来处理业务,什么时候调用View视图来展示数据

         优点:

            1)低耦合,扩展能力增强

            2)代码复用性增强

            3)代码可维护性增强

            4)高内聚,让程序员更加专注业务的开发

         MVC架构模式与三层模型:MVC 和三层模型都采用了分层结构来设计应用程序,都是降低耦合度,提高扩展力,提高组件复用性。区别在于:他们的关注点不同,三层模型更加关注业务逻辑组件的划分。MVC架构模式关注的是整个应用程序的层次关系和分离思想。

                     

    2.什么是SpringMVC

         如下是Spring架构图,其中Web中的servlet指的就是Spring MVC:

                    

         与纯粹的Servlet开发区别:

            1)入口控制:SpringMVC框架通过DispatcherServlet作为入口控制器,负责接收请求和分发请求。Servlet开发中,需要自己编写Servlet程序,在web.xml中进行配置,才能接受和处理请求

            2)在SpringMVC中,表单提交时可以自动将表单数据绑定到相应的JavaBean对象中,只需要在控制器方法的参数列表中声明该JavaBean对象即可,无需手动获取和赋值表单数据。Servlet开发中,这些都是需要自己手动完成的

            3)IoC容器:SpringMVC框架通过IoC容器管理对象,只需要在配置文件中进行相应的配置即可获取实例对象,Servlet开发中需要手动创建对象实例

            4)统一处理请求:SpringMVC框架提供了拦截器、异常处理器等统一处理请求的机制,并且可以灵活地配置这些处理器。Servlet开发中,需要自行编写过滤器、异常处理器等,增加了代码的复杂度和开发难度。

            5)视图解析:SpringMVC框架提供了多种视图模板,如JSP、Freemarker、Velocity等,并且支持国际化、主题等特性。Servlet开发中需要手动处理视图层,增加了代码的复杂度

            SpringMVC框架可以节省时间和精力,减少代码的复杂度,更加专注于业务开发。提供了更多的功能和扩展性,可以更好地满足企业级应用的开发需求。

         特点:轻量级;模块化;依赖注入;易于扩展;易于测试;自动化配置;灵活性

    3.配置文件

         配置web.xml文件:

    1. "1.0" encoding="UTF-8"?>
    2. <web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
    5. version="6.0">
    6. <servlet>
    7. <servlet-name>springmvcservlet-name>
    8. <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
    9. servlet>
    10. <servlet-mapping>
    11. <servlet-name>springmvcservlet-name>
    12. <url-pattern>/url-pattern>
    13. servlet-mapping>
    14. web-app>

         配置springmvc-servlet.xml文件:

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    6. <context:component-scan base-package="springmvc.controller"/>
    7. <bean id="thymeleafViewResolver" class="org.thymeleaf.spring6.view.ThymeleafViewResolver">
    8. <property name="characterEncoding" value="UTF-8"/>
    9. <property name="order" value="1"/>
    10. <property name="templateEngine">
    11. <bean class="org.thymeleaf.spring6.SpringTemplateEngine">
    12. <property name="templateResolver">
    13. <bean class="org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver">
    14. <property name="prefix" value="/WEB-INF/templates/"/>
    15. <property name="suffix" value=".html"/>
    16. <property name="templateMode" value="HTML"/>
    17. <property name="characterEncoding" value="UTF-8"/>
    18. bean>
    19. property>
    20. bean>
    21. property>
    22. bean>
    23. beans>

            

  • 相关阅读:
    【TA-霜狼_may-《百人计划》】图形4.2 SSAO算法 屏幕空间环境光遮蔽
    batch_size和data_iter的理解
    强化学习之父Richard Sutton:通往AGI的另一种可能
    上传npm包到私有nexus仓库中《解决服务端安装npm依赖失败的问题》
    尚硅谷-Spring Cloud
    RK3399平台开发系列讲解(ALSA子系统)4.37、ALSA驱动框架
    SSM健康小程序
    编译原理:语法分析(自顶向下)
    springboot+jsp+ssm助农系统农产品宣传网站设计
    数据结构: 数组与链表
  • 原文地址:https://blog.csdn.net/m0_61057201/article/details/138155331