• SpringMVC之入门


    目录

    一.什么是SpringMVC

    二.SpringMVC工作流程

    三.SpringMVC核心组件

    四.SpringMVC的入门

    4.1.添加相关依赖

    五.静态资源处理

     好啦,今天的分享就到这了,希望能够帮到你呢!😊😊  


    一.什么是SpringMVC

    SpringMVC是一个基于Java的Web应用开发框架,它是Spring Framework的一部分。它提供了一种模型-视图-控制器(MVC)的架构模式,用于构建灵活、可扩展和高效的Web应用程序。SpringMVC通过将请求和响应分离,使开发人员能够更好地组织和管理应用程序的不同组件。它还提供了许多功能,如请求映射、数据绑定、表单处理和验证等,以简化Web开发过程。

    二.SpringMVC工作流程

     

    SpringMVC的工作流程可以简述如下:

    1. 当客户端发送请求到SpringMVC应用程序时,请求将由前端控制器(Front Controller)DispatcherServlet接收。DispatcherServlet是SpringMVC的核心组件,负责协调和管理请求的处理流程。
    2. DispatcherServlet根据请求的URL找到对应的处理器(Handler),Handler是一个带有注解的方法或类,用于处理请求并生成响应。处理器可以根据请求的特征,如URL路径、请求方法、请求参数等进行匹配。
    3. 在执行处理器之前,SpringMVC通过处理器适配器(HandlerAdapter)对处理器进行封装和适配,使其符合统一的处理器接口(HandlerInterface)。这样就可以支持不同类型的处理器,如注解控制器(Annotation Controller)、Controller接口实现类、REST控制器等。
    4. 处理器执行过程中可以通过模型(Model)对象传递数据,模型是一个数据容器,用于保存处理结果并传递给视图(View)。处理器还可以返回一个逻辑视图名,告诉DispatcherServlet选择哪个视图来渲染响应。
    5. DispatcherServlet根据逻辑视图名选择合适的视图解析器(ViewResolver)来解析视图,并生成最终的响应。视图解析器负责将逻辑视图名解析为具体的视图,如JSP、Thymeleaf模板等。视图负责生成最终的HTML、XML、JSON等响应内容。
    6. 最后,DispatcherServlet将响应发送给客户端进行展示。整个请求-响应过程通过中央调度器DispatcherServlet进行协调和控制,使开发者能够集中精力在业务逻辑的处理上,提高开发效率。

    SpringMVC还提供了许多功能和特性,如拦截器(Interceptor)用于对请求进行预处理和后处理、数据绑定和类型转换、表单验证、异常处理、RESTful支持等,以满足不同场景下的需求。总结而言,SpringMVC是一个基于Java的Web应用开发框架,通过MVC架构模式实现了灵活、可扩展的Web应用程序开发。它提供了一套全面的特性和组件,使开发人员能够快速构建高效、易于维护的Web应用程序。

    三.SpringMVC核心组件

    Spring MVC的核心组件包括以下几个部分:

    1. DispatcherServlet:前端控制器,作为中央调度器,接收并分发客户端请求。

    2. HandlerMapping:处理器映射器,根据请求的URL找到相应的处理器(Controller)。

    3. Controller:处理请求的处理器,负责执行业务逻辑并返回模型和逻辑视图名。

    4. ViewResolver:视图解析器,将逻辑视图名解析为具体的视图对象。

    5. View:视图对象,负责渲染模型数据并生成最终的响应。

    6. Model:模型对象,用于封装处理器处理逻辑得到的数据。

    7. HandlerInterceptor:处理器拦截器,可以在请求处理前后进行一些额外的处理,例如权限验证、日志记录等。

    8. DataBinder:数据绑定器,负责将请求参数绑定到处理器的方法参数上。

    9. Validator:验证器,用于对表单数据进行校验。

    10. MessageConverter:消息转换器,负责处理请求和响应的数据格式转换,例如JSON、XML等。

    这些核心组件协同工作,构成了Spring MVC的基本架构,提供了强大而灵活的Web应用开发能力。

    四.SpringMVC的入门

    4.1.添加相关依赖

    在项目中的pom.xml文件中添加依赖,增加后的所有引用配置如下 : 

    1. "1.0" encoding="UTF-8"?>
    2. "http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. 4.0.0
    5. org.example
    6. index
    7. 1.0-SNAPSHOT
    8. war
    9. index Maven Webapp
    10. http://www.example.com
    11. UTF-8
    12. 1.8
    13. 1.8
    14. 3.7.0
    15. 5.0.2.RELEASE
    16. 3.4.5
    17. 5.1.44
    18. 5.1.2
    19. 1.3.1
    20. 2.1.1
    21. 2.4.3
    22. 2.9.1
    23. 4.12
    24. 4.0.0
    25. 1.18.2
    26. 1.2
    27. 1.1.2
    28. 5.0.2.RELEASE
    29. org.springframework
    30. spring-context
    31. ${spring.version}
    32. org.springframework
    33. spring-orm
    34. ${spring.version}
    35. org.springframework
    36. spring-tx
    37. ${spring.version}
    38. org.springframework
    39. spring-aspects
    40. ${spring.version}
    41. org.springframework
    42. spring-web
    43. ${spring.version}
    44. org.springframework
    45. spring-test
    46. ${spring.version}
    47. org.mybatis
    48. mybatis
    49. ${mybatis.version}
    50. mysql
    51. mysql-connector-java
    52. ${mysql.version}
    53. com.github.pagehelper
    54. pagehelper
    55. ${pagehelper.version}
    56. org.mybatis
    57. mybatis-spring
    58. ${mybatis.spring.version}
    59. org.apache.commons
    60. commons-dbcp2
    61. ${commons.dbcp2.version}
    62. org.apache.commons
    63. commons-pool2
    64. ${commons.pool2.version}
    65. org.apache.logging.log4j
    66. log4j-core
    67. ${log4j2.version}
    68. org.apache.logging.log4j
    69. log4j-api
    70. ${log4j2.version}
    71. org.apache.logging.log4j
    72. log4j-web
    73. ${log4j2.version}
    74. junit
    75. junit
    76. ${junit.version}
    77. javax.servlet
    78. javax.servlet-api
    79. ${servlet.version}
    80. provided
    81. org.projectlombok
    82. lombok
    83. ${lombok.version}
    84. provided
    85. org.springframework
    86. spring-webmvc
    87. ${spring.version}
    88. jstl
    89. jstl
    90. ${jstl.version}
    91. taglibs
    92. standard
    93. ${standard.version}
    94. index
    95. src/main/java
    96. **/*.xml
    97. src/main/resources
    98. jdbc.properties
    99. *.xml
    100. org.apache.maven.plugins
    101. maven-compiler-plugin
    102. ${maven.compiler.plugin.version}
    103. ${maven.compiler.source}
    104. ${maven.compiler.target}
    105. ${project.build.sourceEncoding}
    106. org.mybatis.generator
    107. mybatis-generator-maven-plugin
    108. 1.3.2
    109. mysql
    110. mysql-connector-java
    111. ${mysql.version}
    112. true
    113. maven-clean-plugin
    114. 3.1.0
    115. maven-resources-plugin
    116. 3.0.2
    117. maven-compiler-plugin
    118. 3.8.0
    119. maven-surefire-plugin
    120. 2.22.1
    121. maven-war-plugin
    122. 3.2.2
    123. maven-install-plugin
    124. 2.5.2
    125. maven-deploy-plugin
    126. 2.8.2

    创建 spring-mvc.xml:

    1. "1.0" encoding="UTF-8"?>
    2. "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. xmlns:mvc="http://www.springframework.org/schema/mvc"
    6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    8. package="com.junlinyi"/>
    9. "org.springframework.web.servlet.view.InternalResourceViewResolver">
    10. "viewClass"
    11. value="org.springframework.web.servlet.view.JstlView">
    12. "prefix" value="/WEB-INF/jsp/"/>
    13. "suffix" value=".jsp"/>
    14. "/static/" mapping="/static/**"/>

    配置web.xml:

    1. "1.0" encoding="UTF-8"?>
    2. "http://xmlns.jcp.org/xml/ns/javaee"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    5. version="3.1">
    6. Archetype Created Web Application
    7. contextConfigLocation
    8. classpath:spring-context.xml
    9. org.springframework.web.context.ContextLoaderListener
    10. encodingFilter
    11. org.springframework.web.filter.CharacterEncodingFilter
    12. true
    13. encoding
    14. UTF-8
    15. encodingFilter
    16. /*
    17. SpringMVC
    18. org.springframework.web.servlet.DispatcherServlet
    19. contextConfigLocation
    20. classpath:spring-mvc.xml
    21. 1
    22. true
    23. SpringMVC
    24. /

    创建一个 IndexController :

    1. package com.junlinyi.web;
    2. import org.springframework.stereotype.Controller;
    3. import org.springframework.web.bind.annotation.RequestMapping;
    4. /**
    5. * @author 君临沂
    6. * @site www.junlinyi.jly
    7. * @company 君氏集团
    8. * @create 2023-09-04 16:15
    9. */
    10. @Controller
    11. @RequestMapping("/Cloud")
    12. public class IndexController {
    13. @RequestMapping("/Jun")
    14. public String primary(){
    15. System.out.println("hello SpringMVC。。。");
    16. return "hello";
    17. }
    18. }

    测试为:

    五.静态资源处理

    在webapp下建立一个static,然后建立一个image用来存图片,如图:

    再在 spring-mvc.xml 配置文件中增加以下代码 :

    1. "/static/" mapping="/static/**"/>

    效果图:

     好啦,今天的分享就到这了,希望能够帮到你呢!😊😊  

  • 相关阅读:
    [JavaScript]递归,深浅拷贝,处理this指向,异常处理
    Pr:轨道头控件及用途
    字母异位词分组[中等]
    Ubuntu20.04编译Linux内核
    03-Django-基础篇-创建项目
    【ZYNQ】petalinux实现开机自启动
    一般PMP证书会被认为是比较可靠的认证吗?Hr怎么看待?
    day17--抓包工具fillder的使用
    idea无法通过vpn连接到数据库
    将闲置的windows硬盘通过smb共享的方式提供给mac作为时间机器备份
  • 原文地址:https://blog.csdn.net/m0_74915426/article/details/132672696