五、Spring Web应用程序构建
内容
- 映射请求到Spring控制器
- 透明地绑定表单参数
- 校验表单提交
关键词
- 模型-视图-控制器(Model-View-Controller,MVC)
- 处理器映射(handle mapping)
- 视图解析器(view resolver)
- 前端控制器(front controller)
5.1 请求处理流程
URL-->DispatcherServlet-->Controller-->Service-->Dao
当然上面也会反着来进行返回
第一个定义——Model(模型)
模型:控制器完成逻辑处理后,通常会产生一些信息,这些信息需要返回给用户并在浏览器上显示,这些信息就被叫做模型(model)。
视图:信息返回后,需要给用户进行格式化后展示,那么信息就需要发送一个视图(View)。
控制器最后将模型数据打包,并且标示出用于渲染输出的视图名。接下类会将请求连同模型和视图名一起发送给DispatcherServlet。
5.2 编写基本的控制器
控制器方法时添加@RequestMapping注解,这个注解声明了它所要处理的url请求。
5.2.1 定义方法级别的请求
package test
@Controller
public class HomeController() {
@RequestMapping(value='/',method=GET)
public String home() {
return "home";
}
}
- @Controller:注解来声明控制器类,这是一个构造器的注解,也是基于@Component注解。但是,它的目的就是辅助实现组件扫描,组件扫描器会自动找到@Controller,并将其注解的类声明为Spring上下文中的一个bean。
- @RequestMapping:属性value指定了这个方法所要处理的请求路径,method属性细化了它所处理的HTTP方法。
5.2.2 定义类级别的请求
package test
@Controller
@RequestMapping(value='/')
public class HomeController() {
@RequestMapping(method=GET)
public String home() {
return "home";
}
}
1.一个RequestMapping被添加在了类级别上,意味着这个注解会应用到该控制器的所有的方法上,另一个方法上的注解,则是对类级别注解的一个补充。
2. 同时RequestMapping还可以接受一个String数组@RequestMapping(value={'/','/home'})。
5.3 接受请求的输入
关键词
- 查询参数(Query Parameter)
- 表单参数(Form Parameter)
- 路径变量(Path Variable)
5.3.1 处理查询参数
@RequestParam()的DefaultValue属性可以接受参数
@RequestParam('id') long id;
但是这种方法不理想,@RequestMapping就有了占位符这个概念
@RequestMapping(value="/{Id}",method=RequestMethod.GET)
public String book(@PathVariable("Id") long id,Model model) {
model.addAttribute(libraryRespo.findOne(id));
return "book";
}
五、Spring Web应用程序构建的更多相关文章
- Spring实战第五章学习笔记————构建Spring Web应用程序
Spring实战第五章学习笔记----构建Spring Web应用程序 Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现,它能够构建像Spring框架那 ...
- Spring学习(五)--构建Spring Web应用程序
一.Spring MVC起步 看过猫和老鼠的小伙伴都可以想象Tom猫所制作的捕鼠器:它的目标 是发送一个小钢球,让它经过一系列稀奇古怪的装置,最后触发捕鼠 器.小钢球穿过各种复杂的配件,从一个斜坡上滚 ...
- 第05章-构建Spring Web应用程序
1. Spring MVC起步 1.1 跟踪Spring MVC的请求 前端控制器DispatcherServlet 请求旅程的第一站是Spring的DispatcherServlet.与大多数基于J ...
- 第5章—构建Spring Web应用程序—关于spring中的validate注解后台校验的解析
关于spring中的validate注解后台校验的解析 在后台开发过程中,对参数的校验成为开发环境不可缺少的一个环节.比如参数不能为null,email那么必须符合email的格式,如果手动进行if判 ...
- 第5章—构建Spring Web应用程序—SpringMVC详解
SpringMVC详解 5.1.跟踪Springmvc的请求 SpringMVC的核心流程如下: 具体步骤: 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求 ...
- Spring系列(六) Spring Web MVC 应用构建分析
DispatcherServlet DispatcherServlet 是Spring MVC的前端控制器名称, 用户的请求到达这里进行集中处理, 在Spring MVC中, 它的作用是为不同请求匹配 ...
- 12.Spring——Web MVC框架
1.Spring Web MVC 框架 2.Spring MVC Hello World 例子 1.Spring Web MVC 框架 Spring web MVC 框架提供了模型-视 ...
- Spring学习笔记4—流程(Spring Web Flow)
Spring Web Flow是Spring框架的子项目,作用是让程序按规定流程运行. 1 安装配置Spring Web Flow 虽然Spring Web Flow是Spring框架的子项目,但它并 ...
- 【JavaScript】使用面向对象的技术创建高级 Web 应用程序
本文讨论: JavaScript 是基于原型的语言 用 JavaScript 进行面向对象的编程 JavaScript 编码技巧 JavaScript 的未来 本文使用了以下技术: JavaScrip ...
随机推荐
- uiautomatorviewer 出现安卓8.0级以上无法打开的解决方法
一..本人在使用Android自带的uiautomatorviewer工具来进行app元素定位时,出现了Android 9.0打开不了.出现了如下图错误提示: 经过网上的查阅,总结了几个解决的方法. ...
- SpringCloudStream学习(四)TTL(存活时间)Dead Letter Exchanges(死信交换机)
TTL(Time-To-Live and Expiration): RabbitMQ既能对队列设置TTL也能对消息设置TTL,消息TTL可以应用于单个队列.一组队列或应用于逐个消息. 如何给消息设置T ...
- Qt自定义文本输入框实现支持输入度分秒和度两种格式(简易无限制输入)
1.自定义文本输入框 #ifndef MYLINEEDIT_H #define MYLINEEDIT_H #include <QLineEdit> #include "ui_my ...
- 基于环信SDK的IM即时通讯填坑之路(vue)
公司最近使用第三方环信SDK的进行通信聊天,基本已完成.记录下填坑之路 1.可以通过以下方式引用 WebSDK 1.安装 npm install easemob-websdk --save 2. 先 ...
- Git管理修改、撤销修改、删除文件
什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. a.管理修改 对于提交修改, ...
- HDU 2010 (水)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2010 题目大意:给你段连续的数,把满足条件(数字 每一位的3 == 该数字)的数输出,就是水仙花数 解 ...
- java-> 分包分层
项目分层(分包)的作用 程序为什么要分包分层? 以顾客去饭店吃饭案例分析一下: 小饭店: 一个服务员搞定(接待顾客\点菜\炒菜) 大饭店: 迎宾员(是否有预定\ 询问吃中餐还是西餐或者烧烤等\ 几位用 ...
- jquery 扫码实现入库登记管理
刚才跟一位分享的大神讲了关于项目中的需求,因为是第一次做这样的需求,还是蒙蒙的,现在把设计图给大家看看,大家有没有做过这样的需求业务,请多多指教!
- Javascript中的apply与call
一丶定义 每个函数都包含两个非继承而来的方法:apply()和call().这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值. 1.apply()方法 apply( ...
- mybatis多对一与一对多
步骤: 1.创建maven项目 2.编写工具类 3.编写实体类 4.编写mapper接口 5.配置xml 6.测试 多对一:多个学生关联一个老师 工具类: //sqlSessionFactory -- ...