zoukankan      html  css  js  c++  java
  • SpringMVC的介绍

    问题:

    在学习了Spring之后,基于MVC设计模式的项目,我们可以使用Mybatis将数据库替换,使用Spring将Controller层和Service层,以及Service层和数据库层之间进行解耦。但是基于MVC的模式中,在Controller层中的Servlet为请求的代码入口。tomcat服务器在接受到请求后,会根据请求地址自定调用对应的servlet的service方法完成请求处理,但是此流程存在如下问题:

    ① 每个功能都要声明对应的Servlet,麻烦。

    ② Servlet中获取请求数据比较麻烦。

    ③ 响应的方式的代码其实只想声明对应的响应数据。

    解决:

    项目只声明一个Servlet,该Servlet作为项目请求的公共入口。并且在该Servlet必须声明代码,此代码根据请求地址调用对应的逻辑代码处理请求。如果将逻辑方法全部声明在Servlet中造成代码的体系结构不清晰,将逻辑方法单独声明到逻辑类中(Controller类)。然后Servlet中根据请求动态的调用对应的逻辑类中的逻辑方法处理请求即可。

    ① 如何在Servlet中获取逻辑类对象呢?

    使用Spring容器的子容器,在子容器中存储所有的Controller的实例化对象,然后Servlet一次性从子容器中获取所有的对象即可。在init方法中实现即可。

    ② 如何在Servlet中根据请求动态调用对象的逻辑方法呢

    使用反射+注解。

    原理图:

    实现:

    SpringMVC

    本质:

    就是将Servlet进行了封装,提供一个公共的Servlet。该Servlet可以根据请求动态的调用对应的逻辑方法完成请求处理。

    优点:

    提升开发效率。

    使用:

    ① 导入SpringMVC的相关jar

    ② web.xml中配置Servlet

    1. Servlet的访问路径
    2. 配置SpringMVC容器对象的配置文件路径

    ③ src下创建并配置SpringMVC配置文件

    1. 配置注解扫描路径
    2. 配置SpringMVC的驱动解析器。
  • 相关阅读:
    Django开发笔记一
    Netty+SpringBoot写一个基于Http协议的文件服务器
    SQL优化
    mysql 字符串数字转换
    git 常用的命令总结
    eclipse 使用Maven deploy命令部署构建到Nexus
    intellij idea远程debug调试resin4教程
    postman 请求种添加用户权限
    对List中每个对象元素按时间顺序排序
    List根据时间字符串排序
  • 原文地址:https://www.cnblogs.com/vincentmax/p/14307948.html
Copyright © 2011-2022 走看看