三大框架-- SpringMVC
一.概念
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相关推荐
- SSM三大框架+SpringMVC的工作原理及其流程
SSM三大框架+SpringMVC的工作原理及其流程 一.SSM中各层作用及关系 1.持久层:DAO层(mapper层)(属于mybatis模块) DAO层(Mapper层):主要负责与数据库 ...
- idea springmvc_SSM三大框架使用Maven快速搭建整合(SpringMVC+Spring+Mybatis)
本文介绍使用SpringMVC+Spring+MyBatis三大框架使用Maven快速搭建一个demo,实现数据从数据库中查询返回到页面进行展示的过程. 技术选型:SpringMVC+Spring+M ...
- 三大框架整合教程(Spring+SpringMVC+MyBatis)
1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaB ...
- java框架ssm整合_SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)
使用 SSM ( Spring . SpringMVC 和 Mybatis )已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没 ...
- SpringMVC中的文件上传与下载,json转换,及三大框架的整合
文章目录 文件上传 准备一个文件上传的表单 导入文件上传需要的jar包 配置文件上传解析器 编写文件上传的Controller控制器中的代码: 使用ResponseEntity返回值处理文件下载 使用 ...
- 三大框架分别是Spring+SpringMVC+Mybatis ,这些东西必须融汇贯通
三大框架分别是Spring+SpringMVC+Mybatis ,这些东西必须融汇贯通,这些东西是进入高级工程师必备的基础,一份高级整合SSM框架的资料 转载于:https://blog.51cto. ...
- (Spring+SpringMVC+MyBatis)SSM三大框架整合教程
目录 一.基本概念 1.Spring 2.SpringMVC 3.MyBatis 二.开发环境搭建 三.Maven Web项目创建 四.SSM整合 1.Maven引入需要的JAR包 2.Spring与 ...
- 通俗易懂-SSM三大框架整合案例(SpringMVC+Spring+Mybatis)
前言: 学习B站UP狂神说视频笔记整理视频链接 相关代码已经上传至码云:码云链接 前期准备 项目介绍 demo项目是一个简单的图书管理系统,主要功能为表单数据的增删改查 Web端使用JSP+Boots ...
- SSH三大框架的知识题
Struts 谈谈你对Struts的理解. 答: 1.struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是Act ...
最新文章
- RASPBERRY PI PICO 树莓派PICO开发板双核高性能低功耗RP2040芯片
- 简明docker教程 1
- arduino w5500 mysql,W5500网络模块会出现奇怪的问题
- JavaScript中数组去重汇总
- 2025年中国信息消费总额将达12万亿元
- jquery.nicescroll.min.js滚动条插件的用法
- 【UWB定位】 - DWM1000模块调试简单心得 - 2
- Sallen-Key 低通滤波器设计过程
- Windows 7下旋转屏幕的快捷键
- 高德地图哪个语音包最好_用高德地图录制语音包,听自己的声音导航更有个性...
- css sprites将多张图片合并成一张
- python名片识别_基于Python的名片识别接口调用代码实例
- 被新手忽视的 自谐振频率点
- 【对流氓软件说ByeBye】—— 恶意软件删除工具
- DDSM乳腺钼靶图像数据库——ftp下载与格式转换(LJPEG转PNG)
- Java面试:java小项目实例
- OnCreate函数
- Introduce MBT tool robogenerator
- Python之Flask框架(一)
- 3400位造型师,80位大数据科学家,这家美国女装公司这么做个性化定制
热门文章
- 侠盗飞车猎车手破解版_侠盗猎车手有身份危机吗?
- Android 系统内置APK
- 为什么会显示有人正在使用计算机,微信“对方正在输入”为什么有时出现?有时不出现?看完才懂了.....
- 为什么说QQ红包一出手,春节红包大战企鹅又赢了?
- java 股票_java抓取东方财富股票数据
- 走进联合国丨CBK,民企实力的代表
- jar包 使用 -xvf 和 cvfm 解压和打包问题
- [转帖]电源ac和dc有什么区别_dc ac分别代表什么
- 关于《【校园招聘】被南瑞集团坑了。。。》的补充说明和思考20121128
- 在macOS的终端上使用conda安装软件时的镜像无效问题处理