啥是SpringMVC 程序?

啥是SpringMVC 程序?SpringMVC框架又有什么优势?

1.基于 MVC 架构
基于 MVC 架构,功能分工明确。解耦合,
2.容易理解,上手快;使用简单。
就可以开发一个注解的 SpringMVC 项目,SpringMVC 也是轻量级的,jar 很小。不依赖的
特定的接口和类。
3. 作 为 Spring 框 架 一 部 分 , 能 够 使 用 Spring 的 IoC 和 Aop 。 方 便 整 合
Strtus,MyBatis,Hiberate,JPA 等其他框架。
4.SpringMVC 强化注解的使用,在控制器,Service,Dao 都可以使用注解。方便灵活。
使用@Controller 创建处理器对象,@Service 创建业务对象,@Autowired 或者@Resource
在控制器类中注入 Service, Service 类中注入 Dao。
5. 第一个注解的 SpringMVC 程序
所谓 SpringMVC 的注解式开发是指,在代码中通过对类与方法的注解,便可完成处理器
在 springmvc 容器的注册。注解式开发是重点

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7425176
  • 这篇博客也不错, 你可以看下SpringMVC 的流程?
  • 除此之外, 这篇博客: 狂神SpringMVC笔记中的 2.3、SpringMVC执行原理 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    图片

    图为SpringMVC的一个较完整的流程图,实线表示SpringMVC框架提供的技术,不需要开发者实现,虚线表示需要开发者实现。

    简要分析执行流程

    1. DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。

      我们假设请求的url为 :

    http://localhost:8080/SpringMVC/hello

    如上url拆分成三部分:

    http://localhost:8080服务器域名

    SpringMVC部署在服务器上的web站点

    hello表示控制器

    通过分析,如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器。

  • HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。

  • HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为:hello。

  • HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。

  • HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。

  • Handler让具体的Controller执行。

  • Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView。

  • HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。

  • DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名。

  • 视图解析器将解析的逻辑视图名传给DispatcherServlet。

  • DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图。

  • 最终视图呈现给用户。

  • 在这里先听一遍原理,不理解没有关系,我们马上来写一个对应的代码实现大家就明白了,如果不明白,那就写10遍,没有笨人,只有懒人!

  • 您还可以看一下 颜群老师的SpringMVC理论与实战课程中的 SpringMVC环境搭建及第一个程序小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    SpringMVC是一个Java Web应用程序框架,它是基于Spring框架的一个模块,是一个MVC框架。它使用了面向接口编程和依赖注入的思想,使得开发人员不用关心底层的实现,只需关注业务逻辑的实现。SpringMVC采用了前端控制器模式,将请求转发给不同的控制器来处理。在开发速度、可维护性和安全性方面,SpringMVC具有以下优点:

    1.开发速度:SpringMVC框架提供了许多现成的组件和接口,使得开发人员可以快速地开发Web应用程序。同时,SpringMVC采用了注解方式配置控制器和视图,使得代码更加简洁易懂,开发速度更快。

    2.可维护性:SpringMVC框架采用了依赖注入和面向接口编程,使得代码解耦合,易于维护和扩展。同时,SpringMVC提供了许多AOP(面向切面编程)的功能,使得开发人员可以将一些通用的业务逻辑抽象出来,使得代码更加简洁易懂。

    3.安全性:SpringMVC框架提供了许多安全性方面的功能,例如防止CSRF攻击、防止SQL注入攻击等。同时,SpringMVC采用了多种认证和授权方式,使得应用更加安全可靠。

    以下是如何在SpringMVC项目中配置扫描器和视图解析器的步骤:

    1.在SpringMVC配置文件(通常为springMvc.xml)中添加以下配置:

    <!-- 配置扫描器:配置的是控制器的包名 -->
    <context:component-scan base-package="com.qfedu.controller"></context:component-scan>
    
    <!-- 配置视图解析器 -->
    <bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="internalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <!--后缀  -->
        <property name="suffix" value=".jsp"></property>
    </bean>
    

    2.在上述配置中,base-package属性指定了需要扫描的控制器包名,视图解析器配置了JSP页面的位置和后缀。

    3.在控制器中,使用@Controller注解来标注一个类作为控制器,并使用@RequestMapping注解来指定控制器的访问路径。例如:

    @Controller
    @RequestMapping("/user")
    public class UserController {
        @RequestMapping("/login")
        public String login() {
            return "login"; // 返回login.jsp页面
        }
    }
    

    4.在上述代码中,@RequestMapping("/user")指定了控制器的根路径为/user,@RequestMapping("/login")指定了login方法的路径为/user/login,login方法返回login.jsp页面。

    5.最后,在Web应用程序的Web.xml中配置DispatcherServlet,并指定SpringMVC配置文件的位置和映射路径。例如:

    <servlet>
        <servlet-name>springMvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/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>
    

    6.在上述代码中,DispatcherServlet是SpringMVC的核心组件,它会将所有的请求转发给对应的控制器处理。其中,contextConfigLocation参数指定了SpringMVC配置文件的位置,url-pattern指定了DispatcherServlet的映射路径。

    现在您已经知道了什么是SpringMVC框架和它的优点,也知道了如何配置和使用SpringMVC框架。祝您在使用SpringMVC框架开发Web应用程序时,能够更加得心应手。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^