一.概念

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架

二.MVC模型

M代表: Model模型

V代表: View视图

C代表: Control控制层

用来进行分层的结构,这样代码分离结构清晰,各层代码,各司其职,易于开发大型项目。

MVC(Model模型、View视图、Control控制层),将软件进行分层达到松耦合的效果。

通用的软件编程思想, 在MVC设计模式中认为, 任何软件都可以分三层:控制层(Controller)、数据处理模型(Model)、负责展示数据的视图(View)。

在MVC设计思想中要求一个符合MVC设计思想的软件应该保证上面这三部分相互独立,互不干扰,每一个部分只负责自己擅长的部分。如果某一个模块发生变化,应该尽量做到不影响其他两个模块。提高代码的可读性,实现程序间的松耦合、提高代码复用性。

三.SpringMVC的工作原理

1、用户发送请求至前端控制器DispatcherServlet。

2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、DispatcherServlet调用HandlerAdapter处理器适配器。

5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

6、Controller执行完成返回ModelAndView。

7、andlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

9、ViewReslover解析后返回具体View。

10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

11、DispatcherServlet响应用户。

四.处理请求的方式

1.概述
当客户端打开浏览器要访问服务器时,可能会带着一些http请求参数过来.

这时,服务器需要获取http参数进行业务处理,如何处理http请求并获取参数呢?

总共有8种,重点时两种方式:GET方式和POST方式.

2.GET方式
向特定的资源发出请求,并返回实体.有固定的写法.而且数据有最大长度,超出就不行

例如:
http://localhost:8080/car/insert?id=1&name=张三&age=18

3.POST方式
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

4.RESTFul方式(推荐)
为了简化GET请求的写法,可以使用RESTFul方式,用法:

1>、需要使用注解@PathVariable来获取请求路径中的参数值,@PathVariable用来绑定值

2>、通过{???}获取路径中传递来的值

3>、以前GET的访问方式即将被简化成:

5.总结

get:把请求参数 在地址栏拼接http://localhost:8080/car/insert?id=1&name=张三&age=18
post:安全,数据不在地址栏展示

package cn.tedu.controller;import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import cn.tedu.pojo.Car;@RestController//接受请求,返回json数据
@RequestMapping("/car/")
public class CarController {//2,通过GET请求,传入参数并接收处理//访问 http://localhost:8080/car/add?id=10,必须设置id的值否则报错,?拼接是固定语法@RequestMapping("add")public void add(int id) {System.out.println("数据添加成功,id="+id);}//访问 http://localhost:8080/car/save?id=90&name=tony ,设置多个参数值时用&连接@RequestMapping("save")public void save(int id,String name) {System.out.println("数据保存成功,id="+id+",name="+name);}//访问 http://localhost:8080/car/obj?id=100&name=BMW&color=red@RequestMapping("obj") public void obj(Car c) {//处理一个对象的参数System.out.println(c);}//3,优化GET传参的restful方式//GET方式访问: http://localhost:8080/car/insert?id=1&name=张三&age=18//restful方式访问: http://localhost:8080/car/insert/1/张三/18@RequestMapping("insert/{x}/{y}/{z}")
//restful配合@PathVariable注解一起用,使用{资源名}获取传过来的值public void insert(@PathVariable int x,@PathVariable String y,@PathVariable int z) {System.out.println("数据插入成功,id="+x+",name="+y+",age="+z);}}

五.日期数据的处理

把页面上的intime日期数据,交给后台处理.由于页面的数据都当做String类型处理,所以交给后台处理时,会抛出400错误.需要使用注解进行类型转换.并指定日期格式:

//页面报400 IllegalArgumentException: String->Date@DateTimeFormat(pattern="yyyy-MM-dd";)private java.util.Date intime;public Date getIntime() {return intime;}public void setIntime(Date intime) {this.intime= intime;}

六.使用Ajax技术访问

<script src="jquery-1.8.3.min.js"></script>
<script>function fun(){$.ajax({url:"http://localhost:8080/stu/add",data:$("#f1").serialize(),success:function(data){console.log(data);}})}
</script>

七.MVC和SSM的关系

八.SpringMVC的常用注解

@Controller 标识是一个Controller,Spring包扫描创建实例

@RequestMapping 请求后的映射路径

@PathVariable 标识接收单个参数

@ResponseBody 返回对象利用jackson工具类转换为json字符串

@RequestParam 参数名和请求参数名称不同时使用,可以设置默认值

@CrossOrigin 解决跨域问题

九.SpringMVC常见的异常

  • 404错误
    • 请求的url不存在
  • 500错误
    • 请求的url未绑定参数
  • 400错误
    • url中的参数类型 和 服务器需要的 参数类型不同

三大框架-- SpringMVC相关推荐

  1. SSM三大框架+SpringMVC的工作原理及其流程

    SSM三大框架+SpringMVC的工作原理及其流程 一.SSM中各层作用及关系 1.持久层:DAO层(mapper层)(属于mybatis模块)     DAO层(Mapper层):主要负责与数据库 ...

  2. idea springmvc_SSM三大框架使用Maven快速搭建整合(SpringMVC+Spring+Mybatis)

    本文介绍使用SpringMVC+Spring+MyBatis三大框架使用Maven快速搭建一个demo,实现数据从数据库中查询返回到页面进行展示的过程. 技术选型:SpringMVC+Spring+M ...

  3. 三大框架整合教程(Spring+SpringMVC+MyBatis)

    1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaB ...

  4. java框架ssm整合_SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)

    使用 SSM ( Spring . SpringMVC 和 Mybatis )已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没 ...

  5. SpringMVC中的文件上传与下载,json转换,及三大框架的整合

    文章目录 文件上传 准备一个文件上传的表单 导入文件上传需要的jar包 配置文件上传解析器 编写文件上传的Controller控制器中的代码: 使用ResponseEntity返回值处理文件下载 使用 ...

  6. 三大框架分别是Spring+SpringMVC+Mybatis ,这些东西必须融汇贯通

    三大框架分别是Spring+SpringMVC+Mybatis ,这些东西必须融汇贯通,这些东西是进入高级工程师必备的基础,一份高级整合SSM框架的资料 转载于:https://blog.51cto. ...

  7. (Spring+SpringMVC+MyBatis)SSM三大框架整合教程

    目录 一.基本概念 1.Spring 2.SpringMVC 3.MyBatis 二.开发环境搭建 三.Maven Web项目创建 四.SSM整合 1.Maven引入需要的JAR包 2.Spring与 ...

  8. 通俗易懂-SSM三大框架整合案例(SpringMVC+Spring+Mybatis)

    前言: 学习B站UP狂神说视频笔记整理视频链接 相关代码已经上传至码云:码云链接 前期准备 项目介绍 demo项目是一个简单的图书管理系统,主要功能为表单数据的增删改查 Web端使用JSP+Boots ...

  9. SSH三大框架的知识题

    Struts 谈谈你对Struts的理解. 答: 1.struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是Act ...

最新文章

  1. RASPBERRY PI PICO 树莓派PICO开发板双核高性能低功耗RP2040芯片
  2. 简明docker教程 1
  3. arduino w5500 mysql,W5500网络模块会出现奇怪的问题
  4. JavaScript中数组去重汇总
  5. 2025年中国信息消费总额将达12万亿元
  6. jquery.nicescroll.min.js滚动条插件的用法
  7. 【UWB定位】 - DWM1000模块调试简单心得 - 2
  8. Sallen-Key 低通滤波器设计过程
  9. Windows 7下旋转屏幕的快捷键
  10. 高德地图哪个语音包最好_用高德地图录制语音包,听自己的声音导航更有个性...
  11. css sprites将多张图片合并成一张
  12. python名片识别_基于Python的名片识别接口调用代码实例
  13. 被新手忽视的 自谐振频率点
  14. 【对流氓软件说ByeBye】—— 恶意软件删除工具
  15. DDSM乳腺钼靶图像数据库——ftp下载与格式转换(LJPEG转PNG)
  16. Java面试:java小项目实例
  17. OnCreate函数
  18. Introduce MBT tool robogenerator
  19. Python之Flask框架(一)
  20. 3400位造型师,80位大数据科学家,这家美国女装公司这么做个性化定制

热门文章

  1. 侠盗飞车猎车手破解版_侠盗猎车手有身份危机吗?
  2. Android 系统内置APK
  3. 为什么会显示有人正在使用计算机,微信“对方正在输入”为什么有时出现?有时不出现?看完才懂了.....
  4. 为什么说QQ红包一出手,春节红包大战企鹅又赢了?
  5. java 股票_java抓取东方财富股票数据
  6. 走进联合国丨CBK,民企实力的代表
  7. jar包 使用 -xvf 和 cvfm 解压和打包问题
  8. [转帖]电源ac和dc有什么区别_dc ac分别代表什么
  9. 关于《【校园招聘】被南瑞集团坑了。。。》的补充说明和思考20121128
  10. 在macOS的终端上使用conda安装软件时的镜像无效问题处理