【SSM框架系列】SpringMVC基本介绍
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基本介绍相关推荐
- 【重温SSM框架系列】2 - Spring配置数据源连接池(手动创建与配置)
Spring配置数据源) 数据源(连接池概述) 自定义数据源(手动创建) 1. 导入Druid和mysql数据库驱动依赖包 2. 创建数据源对象并配置基本连接信息 使用JDBC操作数据库,打印user ...
- 【重温SSM框架系列】15 - SSM系列博文总结【SSM杀青篇】
SSM总结 Spring部分 1 - Spring快速入门(配置文件及API详解) 2 - Spring配置数据源连接池(手动创建与配置) 3 - Spring注解开发(注解代替xml文件配置) 4 ...
- SSM框架系列之框架整合教程
很久之前就想写的教程,因为忙着找实习的原因,没有整理出来,首先SSM框架组合(SpringMVC+Spring+Mybatis)和SSH(Spring4.0+Struts2+Hibernate4.0) ...
- JavaWeb学习之路——SSM框架之SpringMVC(八)
SpringMVC参数传递:把内容写到方法(HandlerMethod)参数中,SpringMVC只要有这个内容,则会注入,在这里使用注解的方式来传递参数 前提使用springmvc注解功能,相应配置 ...
- SSM框架:SpringMVC
SSM框架:SpringMVC 文章目录 前言 一.回顾 1. 学习方法说明 2. 回顾MVC架构 1.什么是MVC 2.MVC的结构分析 3.Model1时代 4.Model2时代 3. 回顾Ser ...
- SSM框架(spring+springmvc+mybatis)+Mysql实现的社区物业管理系统(功能包含分角色,报修管理、抄表管理、车位管理、房屋管理、业主管理、投诉管理、报修统计分析等)
博客目录 SSM框架(spring+springmvc+mybatis)+Mysql实现的社区物业管理系统 实现功能截图 系统功能 使用技术 代码 完整源码 SSM框架(spring+springmv ...
- 【重温SSM框架系列】1 - Spring快速入门(配置文件及API详解)
Spring快速入门 Spring是什么 Spring发展历史 Spring的优势 Spring的开发步骤 没有Spring的时候的开发步骤 使用Spring的开发步骤 Spring配置文件(appl ...
- SSM框架——Spring+SpringMVC+Mybatis的搭建教程
一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛. Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP. S ...
- [转载] 手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis
参考链接: Java继承类的对象创建 本文发表于2016年6月,写于作者学生时期.文中使用到的技术和框架可能不是当下最佳实践,甚至很不"优雅".但对于刚接触JavaEE和Sprin ...
- 手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis
http://blog.csdn.net/qq598535550/article/details/51703190 我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能:而且在大部分教学课 ...
最新文章
- 真正理解线程上下文类加载器(多案例分析)
- 谷歌AI乳腺癌检测超过人类?美国知名记者:让糟糕的医疗更糟罢了
- BigDecimal类(精度计算类)的加减乘除
- werkzeug源码阅读笔记(二) 下
- IE8的parseInt
- golang字符型及使用细节
- Redis 缓存常见问题:缓存一致性的解决方案
- DNS-实验6_queryperf和dnstop的简单使用
- java stream optional_java成神之——Stream和Optional
- JEECG_3.7 权限开发讲解-张代浩-专题视频课程
- 编程同写作,写代码只是在码字
- 鸿蒙系统会有彩蛋吗,华为新系统亮点不断,一个新功能让人欢呼,升级后还有惊喜彩蛋...
- uboot驱动模型(DM)分析(一)
- md5算法不可逆,为啥网上很多网站声称可以解密md5
- 九层之台,起于累土:码良组件开发
- Java小程序--多彩时钟表盘的制作
- Java 用NIO实现一个聊天室(多人聊天、单人聊天)
- 科学计算机怎么用分号,350ms82ms科学计算器使用方法.docx
- 138 - 打球过程
- 其实大多数人没必要关注iPhone5