SpringMVC 是web层的框架

  • SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 中。

  • SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。

  • 它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持 RESTful 编程风格的请求。

web层主要干嘛的:接收请求参数,封装数据,调用service,响应给浏览器

但是在web层各种域之间存取数据、页面之间的跳转、数据写到响应体中等等这些操作还未进行优化。

Spring提供了spring-web实现Spring整合web开发,但是这种做法很难实现MVC思想,也就是不能简化我们的web开发。

这里要注意区分两个不同的概念:

1、软件三层:展示层、业务层、数据持久层。一个应用根据代码职责不同划分为软件三层。

展示层:负责与前台交互业务层:负责业务逻辑处理数据持久层:负责业务数据持久化与读取

2、MVC:为了模型和视图实现代码上的分离,将软件三层中的展示层中代码根据职能不同分为三部分:

模型——Model——M         :封装数据(企业数据和业务规则)视图——View——V            :封装视图(用户可以看到的界面,通过HTML、jsp等技术实现)控制——Controller——C       :负责同步M和V,一旦M改变,V应该同步更新。

Spring简化版工作流程


如上图所示,Servlet需要的做工作有:

  • 接收请求
  • 通过request对象获取请求参数
  • 将获取的请求参数封装成对象
  • 调用Service
  • 根据Service返回的结果,作出响应,响应可以是将数据写入各种域中,完成页面跳转,也可以把数据封装成json写到响应体中,然后直接响应

上述步骤中除了调用Service会根据不同的业务需求调用不同的service之外,其他的基本都是相对比较固定的。这些相对比较固定的步骤就是SpringMVC帮我们去实现的,通过前端控制器帮我们实现。

两个概念,JavaBean和POJO。

  • JavaBean 是指一个类按照指定的规范去编写

    • 这个类必须实现序列化接口
    • 这个类必须提供无参构造方法
    • 这个类必须私有化成员变量
    • 这个类必须提供成员变量的getter和setter
  • POJO —— Plain Ordinary Java Object —— 就是简单的java对象
    • 就是一个普通的java类
    • 没有任何实现和继承(Object除外)
    • 可以有自己的成员变量和成员方法
    • controller就是一个POJO

代码演示

导入Spring和SpringMVC的坐标、导入Servlet和Jsp的坐标

     <!--Spring坐标--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.5.RELEASE</version></dependency><!--SpringMVC坐标--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.0.5.RELEASE</version></dependency><!--Servlet坐标--><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><!--Jsp坐标--><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.0</version></dependency>

在web.xml配置SpringMVC的核心控制器

<!-- 配置SpringMVC前端控制器 -->
<servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- servlet初始化参数,用于指定SpringMVC配置文件位置schema约束规定,该标签需要在load-on-startup上面--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><!-- 0表示web容器启动时就加载该控制器DispatcherServlet当值为0或者大于0时,表示容器在应用启动时就加载这个servlet正数的值越小,启动该servlet的优先级越高设置重复也不会出现异常,服务器会自己决定初始化顺序。当是一个负数时或者没有指定时,则指示容器在该servlet被使用时才加载--><load-on-startup>1</load-on-startup>
</servlet>
<!-- 拦截规则 -->
<servlet-mapping>   <servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern>
</servlet-mapping>

编写Controller代码

    public class QuickController {public String quickMethod(){System.out.println("quickMethod running.....");return "index";}}

在webapp目录下编写视图页面index.jsp

<html>
<body><h2>Hello SpringMVC!</h2>
</body>
</html>

使用注解装配Controller、配置方法的映射请求地址

 // 把当前类放入Spring容器@Controllerpublic class QuickController {// 给当前方法加访问路径@RequestMapping("/quick")public String quickMethod(){System.out.println("quickMethod running.....");// 如果是重定向 “redirect:/quick/index.jsp”// 如果是转发   “forward:/quick/index.jsp” // 不写,默认转发return "index";}}

⑤ 编写spring-mvc.xml

       <!--配置SpringMVC的注解扫描,建议只扫描controller层--><context:component-scan base-package="cs.wy.controller"/>

【SSM框架系列】SpringMVC基本介绍相关推荐

  1. 【重温SSM框架系列】2 - Spring配置数据源连接池(手动创建与配置)

    Spring配置数据源) 数据源(连接池概述) 自定义数据源(手动创建) 1. 导入Druid和mysql数据库驱动依赖包 2. 创建数据源对象并配置基本连接信息 使用JDBC操作数据库,打印user ...

  2. 【重温SSM框架系列】15 - SSM系列博文总结【SSM杀青篇】

    SSM总结 Spring部分 1 - Spring快速入门(配置文件及API详解) 2 - Spring配置数据源连接池(手动创建与配置) 3 - Spring注解开发(注解代替xml文件配置) 4 ...

  3. SSM框架系列之框架整合教程

    很久之前就想写的教程,因为忙着找实习的原因,没有整理出来,首先SSM框架组合(SpringMVC+Spring+Mybatis)和SSH(Spring4.0+Struts2+Hibernate4.0) ...

  4. JavaWeb学习之路——SSM框架之SpringMVC(八)

    SpringMVC参数传递:把内容写到方法(HandlerMethod)参数中,SpringMVC只要有这个内容,则会注入,在这里使用注解的方式来传递参数 前提使用springmvc注解功能,相应配置 ...

  5. SSM框架:SpringMVC

    SSM框架:SpringMVC 文章目录 前言 一.回顾 1. 学习方法说明 2. 回顾MVC架构 1.什么是MVC 2.MVC的结构分析 3.Model1时代 4.Model2时代 3. 回顾Ser ...

  6. SSM框架(spring+springmvc+mybatis)+Mysql实现的社区物业管理系统(功能包含分角色,报修管理、抄表管理、车位管理、房屋管理、业主管理、投诉管理、报修统计分析等)

    博客目录 SSM框架(spring+springmvc+mybatis)+Mysql实现的社区物业管理系统 实现功能截图 系统功能 使用技术 代码 完整源码 SSM框架(spring+springmv ...

  7. 【重温SSM框架系列】1 - Spring快速入门(配置文件及API详解)

    Spring快速入门 Spring是什么 Spring发展历史 Spring的优势 Spring的开发步骤 没有Spring的时候的开发步骤 使用Spring的开发步骤 Spring配置文件(appl ...

  8. SSM框架——Spring+SpringMVC+Mybatis的搭建教程

    一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛. Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP. S ...

  9. [转载] 手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis

    参考链接: Java继承类的对象创建 本文发表于2016年6月,写于作者学生时期.文中使用到的技术和框架可能不是当下最佳实践,甚至很不"优雅".但对于刚接触JavaEE和Sprin ...

  10. 手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis

    http://blog.csdn.net/qq598535550/article/details/51703190 我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能:而且在大部分教学课 ...

最新文章

  1. 真正理解线程上下文类加载器(多案例分析)
  2. 谷歌AI乳腺癌检测超过人类?美国知名记者:让糟糕的医疗更糟罢了
  3. BigDecimal类(精度计算类)的加减乘除
  4. werkzeug源码阅读笔记(二) 下
  5. IE8的parseInt
  6. golang字符型及使用细节
  7. Redis 缓存常见问题:缓存一致性的解决方案
  8. DNS-实验6_queryperf和dnstop的简单使用
  9. java stream optional_java成神之——Stream和Optional
  10. JEECG_3.7 权限开发讲解-张代浩-专题视频课程
  11. 编程同写作,写代码只是在码字
  12. 鸿蒙系统会有彩蛋吗,华为新系统亮点不断,一个新功能让人欢呼,升级后还有惊喜彩蛋...
  13. uboot驱动模型(DM)分析(一)
  14. md5算法不可逆,为啥网上很多网站声称可以解密md5
  15. 九层之台,起于累土:码良组件开发
  16. Java小程序--多彩时钟表盘的制作
  17. Java 用NIO实现一个聊天室(多人聊天、单人聊天)
  18. 科学计算机怎么用分号,350ms82ms科学计算器使用方法.docx
  19. 138 - 打球过程
  20. 其实大多数人没必要关注iPhone5

热门文章

  1. 5.1 实验五 四则运算单元测试
  2. 严定贵:互联网金融的速度与激情
  3. jQuery 分页插件 jPages 使用
  4. CSS3 Filter的十种特效
  5. IE9正式版已完成 截图曝光
  6. Exchange2007中创建收件人对象、通讯组和地址列表和客户端访问
  7. Tabhost嵌套以及Tab中多个Activity跳转的实现
  8. AJAX 缓存问题的两种解决方法(IE
  9. 求解最大字段和的几种方法
  10. MySQL第2天:MySQL的架构介绍之MySQL介绍