第五章 构建Spring Web应用程序

映射请求到Spring控制器

透明地绑定表单参数

校验表单提交

一、Spring MVC起步

1、跟踪spring MVC的请求

在请求离开浏览器时,会带有用户所请求内容的信息,至少会包含请求的URL。但是还可能带有其它的信息,例如用户提交的表单信息。

请求旅程的第一站时候Spring的DispatcherServlet。与大多数基于java的web框架一样,spring MVC所有的请求都会通过一个前端控制器(front controller)servlet。前端控制器是常用的web应用程序模式,在这里一个单实例的servlet将请求委托给应用程序的其它组件来执行实际的处理。在springMVC中,DispatcherServlet就是前端控制器。

DispatcherServlet的任务时将请求发送给spring MVC控制器(controller)。控制器是一个用于处理请求的spring组件。在典型的应用程序中可能会有多个控制器,DispatcherServlet需要知道应该将请求发送给哪个控制器。所以DispatcherServlet以会查询一个或多个处理器映射(handler mapping)来确定请求的下一站在哪里。处理器映射会根据请求所携带的URL信息来进行决策。

一旦选择了合适的控制器,DispatcherServlet会将请求发送给选中的控制器。到了控制器,请求会将用户提交的信息发给控制器,并等待其处理这些信息。

控制器在完成逻辑处理后,通常会产生一些信息,这些信息需要返回给用户并在浏览器上显示。这些信息被称为模型(model)。不过仅仅给用户返回原始的信息是不够的,这些信息需要以用户友好的方式进行格式化,一般会是HTML。所以,信息需要发送一个视图(view),通常会是JSP。

控制器所做的最后一件事是将模型数据打包,并且标示出用于渲染输出的视图名。它接下来将请求连同模型和视图名发送回DispatcherServlet。

这样,控制器就不会与特定的视图相耦合,传递给DispatcherServlet的视图名并不直接标示某个特定的JSP。

2、搭建spring MVC

3、Spittr应用简介

二、编写基本的控制器

在springMVC中,控制器只是方法上添加了@RequestMapping注解的类,这个注解声明了它们所要处理的请求。

package oschina;
@Controller
public class HomeController{@RequestMapping(value="/",method=GET)public String home(){return "home";}
}

1、测试控制器

2、定义类级别的请求处理

3、传递模型数据到视图中

三、接受请求的输入

未完待续...

Spring in action有点看不动了,到此为止吧,不煎熬了...

Spring实战@目录

Spring实战 | 第二部分 Web中的Spring(第五章 构建Spring Web应用程序)相关推荐

  1. 《Spring实战(第5版)》第三章3.1代码的各种问题(补充)

    <Spring实战(第5版)>第三章3.1代码的各种问题_TickTick123的博客-CSDN博客 首先按照该博主的博客进行修改,但是在修改完以后,在执行jdbc.update(psc, ...

  2. 《Introduction to Tornado》中文翻译计划——第五章:异步Web服务

    http://www.pythoner.com/294.html 本文为<Introduction to Tornado>中文翻译,将在https://github.com/alioth3 ...

  3. 第十五章 Python和Web

    第十五章 Python和Web 本章讨论Python Web编程的一些方面. 三个重要的主题:屏幕抓取.CGI和mod_python. 屏幕抓取 屏幕抓取是通过程序下载网页并从中提取信息的过程. 下载 ...

  4. 第五章 存储数据 web scraping with python

    第五章.存储数据 尽管在终端打印是有很多乐趣的,但是当谈到数据汇总和分析时候这不是非常有用的.为了使大部分的爬虫有用,你需要能够保存它们抓取的信息. 在本章中,我们将着眼于的三个数据管理的方法满足任何 ...

  5. 《HTML5和JavaScript Web应用开发》——第 2 章 移动Web 2.1移动优先

    本节书摘来自异步社区<HTML5和JavaScript Web应用开发>一书中的第2章,第2.1节,作者:[美]Wesley Hales著,更多章节内容可以访问云栖社区"异步社区 ...

  6. 第二十五章 使用系统监视器 - 应用程序监视器

    文章目录 第二十五章 使用系统监视器 - 配置健康监视器类 设置运行状况监视器选项 应用程序监视器 应用程序监视器概述 第二十五章 使用系统监视器 - 配置健康监视器类 此子菜单中的选项可让自定义 H ...

  7. 读《Spring 实战(第四版)》第三章 高级装配

    配置profile bean Spring为环境相关的bean所提供的解决方案,3.1引入 在Java配置中,可以使用@Profile注解指定某个bean属于哪个profile @Configurat ...

  8. Spring Cloud Spring Boot mybatis分布式微服务云架构(五)构建RESTful API

    2019独角兽企业重金招聘Python工程师标准>>> 首先,回顾并详细说明一下在快速入门中使用的@Controller.@RestController.@RequestMappin ...

  9. Web中实现Flash播放器点播视频(Web向Flash中传递参数)

    有时候要用到在前端Web界面往Flash里面传值,Flash根据获取到的值去播放指定的视频流. 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...

最新文章

  1. Flex报错Error #2048: 安全沙箱冲突
  2. vue中使用swiper的一些坑
  3. Github上删除fork的仓库
  4. WPF实现listview横向排列图标
  5. python处理excel教程实例-Python玩转Excel的读写改实例
  6. 漫画:什么是Base64算法
  7. MySQL-InnoDB索引实现
  8. zabbix邮件报警
  9. Javascript 随机数函数 学习之一:产生服从均匀分布随机数
  10. 容易被PHP程序员忽视的几个要点
  11. Max Points on a Line@LeetCode
  12. 「洛谷P1231」教辅的组成 解题报告
  13. 拉普拉斯方程式 Laplace's equation
  14. JS封装小写字母转大写
  15. AT32 EMAC MQTT Client
  16. 利用随机森林进行特征选择
  17. MySql中数据表增加字段很慢
  18. 理财系列 2 股票体检指标之市盈率
  19. 一款全新的网页数据采集工具:爬山虎采集器
  20. Codevs3287 货车运输

热门文章

  1. pyecharts 入门之地图(七)
  2. layui引用阿里矢量图标
  3. 通达信下单程序dll接口怎么样去搭建?
  4. ORACLE数据库合集
  5. 使用opengl绘制立方体_一步步学OpenGL(25) -《Skybox天空盒子》
  6. JAVA策略三国,StrategyPattern--策略模式java实现
  7. 服务器CPU跑高会怎么样,怎么解决
  8. ESPCMSP8系统短信接口替换
  9. 微信小程序长按和点击同时存在时,2个都会触发的问题
  10. sublime 打开报错 Error loading syntax file “Packages/HTML/HTML.sublime-syntax“: Apparent recursion withi