SpringMVC是Spring框架中用于Web应用快速开发的一个模块。

SpringMVC基于Spring框架、Servlet和JSP。

-------------------------------------------------------HTTP---------------------------------------------------------

1.HTTP都是通过客户端发起请求到服务端,然后服务端返回最新数据到客户端,进行展示,服务端不会主动与客户端联系。

2.WebSocket协议支持双向通信,其允许HTTP连接升级为WebSocket连接,这样服务端即可以主动与客户端联系。

3.URL

1)protocol://[host.]domain[:port][/context][/resource][?query string | path variable]

2)protocol://IP Address[:port][/context][/resource][?query string | path variable]

port:端口号,HTTP默认端口号为80,如果Web服务器采用的就是80端口则在URL中不需要输入端口号,如果Web服务器采用的不是80端口则需要在URL中带上端口号,例:http://localhost:8080/index.html

context:可以有一个或者多个默认资源,一个没有带资源名称的URL通常指向默认资源,多个资源时则会返回优先级最高的资源

query string |path variable :一个或者多个查询语句或者路劲参数。查询语句是一个key/value键值对,多个查询语句用&分开,路径参数只有value部分,多个路径参数使用/分开

4.HTTP请求

一个HTTP请求有三部分内容:

1)方法-URI-协议/版本

2)请求头信息

3)请求正文

每一个header内容都需要以换行分开。

请求头信息和请求正文使用一行空行分开,HTTP服务器以此作为判断请求正文的起始位置。

例:

POST /example/index.jsp HTTP/1.1

Accept:application/json
Accept-Encoding:gzip, deflate
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Content-Length:349
Content-Type:application/json
Cookie:_abtest_userid=14e67ba6-26cc-42d6-a5ed-6d9e9e1a875b; _fpacid=09031167210325702118; GUID=09031167210325702118; ASP.NET_SessionId=bv4ffrchwgo2031ivpgwk5qd; _gat=1; _bfa=1.1470615639048.z04jg.1.1472960608709.1474384126008.12.81; _bfs=1.2; _ga=GA1.2.228529258.1470615640; _jzqco=%7C%7C%7C%7C1474384130020%7C1.869275155.1470615640098.1474384129985.1474384147324.1474384129985.1474384147324.0.0.0.45.45; _bfi=p1%3D600004933%26p2%3D212044%26v1%3D81%26v2%3D80
Host:m.ctrip.com
Origin:http://m.ctrip.com
Referer:http://m.ctrip.com/webapp/inn/index
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
X-Requested-With:XMLHttpRequest

lastname=zhu&firstname=xing

5.HTTP响应

HTTP响应含有三部分:

1)协议-状态码-描述

2)响应头信息

3)响应正文

例:

HTTP/1.1 200 OK

Access-Control-Allow-Origin:*
Cache-Control:private
CLOGGING_TRACE_ID:7783947182870047983
Connection:keep-alive
content-encoding:gzip
Content-Type:application/json;charset=utf-8
Date:Tue, 20 Sep 2016 15:09:08 GMT
Server:Tengine/2.1.1
SOA20-Response-Status:Success
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-AspNet-Version:4.0.30319
x-gate:ctrip-gate
x-gate-instance:unknown
x-gate-remote-call-cost:417
x-originating-url:http://m.ctrip.com/restapi/soa2/11390/hotel/inn/gethomepagehotellist?_fxpcqlniredt=09031167210325702118
X-Powered-By:ASP.NET
X-Powered-By:CTrip/SOA2.0 Win32NT/.NET

<html>

<head>

<title></title>

</head>

<body>

...

</body>

-------------------------------------------------------Servlet和JSP---------------------------------------------------------

1.Servlet和JSP

1)Servlet是java体系中开发Web应用的底层技术。一个Servlet为响应第一次请求而被创建后,则会一直在内存中,因此后续请求可以很快。

2)一个Servlet是一个java程序,一个Servlet应用包含了一个或者多个Servlet,一个JSP页面会被翻译编译成一个Servlet。

3)Servlet应用运行在Servlet容器中。Servlet容器将用户请求给Servlet应用,并将响应返回给用户。

4)一个Servlet/JSP容器是一个能够处理Servlet以及静态资源的Web服务端。

SpringMVC学习指南-前言的更多相关文章

  1. springmvc学习指南 之---第25篇 Spring Bean有三种配置方式

    writed by不要张艳涛, 从tomcat转到了springmvc 现在开始有点不知道该看什么书了,看完了springmvc 学习指南之后 又查了一些书,好多都是内容相近,在找书的过程之中,发现s ...

  2. 又一本springmvc学习指南 之---第22篇 springmvc 加载.xml文件的bean标签的过程

    writedby 张艳涛,今天看spring mvc 学习指南的第2章,特意提下这个作者是how tomcat works 俩个作者之一, 喜欢上一本书的风格,使用案例来讲述原理, 在做第一个案例的时 ...

  3. springmvc学习指南 之---第27篇 spring如何实现servlet3.0无web.xml 配置servlet对象的

    writedby 张艳涛 基于web.xml配置,有人说麻烦,tomcat给按照servlet3.0,实现了基于注解@WebServlet,有人说springmvc的springmvc.xml配置麻烦 ...

  4. springmvc学习指南 之---第24篇 国际化问题

    writedby 张艳涛,今天一天就搞了一个这个问题,主要是下路,遇到springmvc-config.web的配置和拦截器的使用问题, 看了几天的spring发现都没讲拦截器,之前看了两天sprin ...

  5. SpringMVC学习指南-Spring框架

    Spring框架主要使用依赖注入.实际上,很多牛叉的框架如Google的Guice都是使用依赖注入. ------------------------------------------------- ...

  6. PWN二进制漏洞学习指南

    目录 PWN二进制漏洞学习指南 前言 前置技能 PWN概念 概述 发音 术语 PWN环境搭建 PWN知识学习途径 常见漏洞 安全机制 PWN技巧 PWN相关资源博客 Pwn菜鸡小分队 PWN二进制漏洞 ...

  7. Java工程师学习指南第3部分:Spring与SpringMVC源码解析

    本文整理了微信公众号[Java技术江湖]发表和转载过的Spring全家桶优质文章,想看到更多Java技术文章,就赶紧关注吧. 前后端分离,我怎么就选择了 Spring Boot + Vue 技术栈? ...

  8. springmvc学习笔记--REST API的异常处理

    前言: 最近使用springmvc写了不少rest api, 觉得真是一个好框架. 之前描述的几篇关于rest api的文章, 其实还是不够完善. 比如当遇到参数缺失, 类型不匹配的情况时, 直接抛出 ...

  9. springmvc学习笔记---面向移动端支持REST API

    前言: springmvc对注解的支持非常灵活和飘逸, 也得web编程少了以往很大一坨配置项. 另一方面移动互联网的到来, 使得REST API变得流行, 甚至成为主流. 因此我们来关注下spring ...

随机推荐

  1. vitualbox网络设置链接

    网文摘录地址:https://blog.csdn.net/yushupan/article/details/78404395 vitualbox网络设置: 一.NAT模式 特点: 1.如果主机可以上网 ...

  2. OneinStack 安装 LNMP 切换PHP版本

    如果你的环境不是OneinStack安装的  ,可以略过这条博客了 注意:以下所有命令若提示权限不足 请在命令前加 sudo *** ①,首先查看当前已安装的PHP版本,我这里安装了好几个版本,你们可 ...

  3. Spring Boot . 4 -- 定制 Spring Boot 配置

    覆写 Auto-Configuration 的类 利用外部属性进行动态配置 [本文] 定制 Error 页面 [第二篇] Spring Boot的自动配置可以节省很多无趣的配置工作,但是并不是所有的自 ...

  4. Java随机数使用

    JAVA取随机数的三种方式: Math.random() System.currentTimeMillis() random.nextInt() 废话不多说,看代码: /** *取单个随机数 *Mat ...

  5. Linux一键安装web环境全攻略phpstudy版

    此教程主要是应对阿里云Linux云服务器ecs的web环境安装,理论上不限于阿里云服务器,此教程对所有Linux云服务器都具有参考价值. 写这篇文章的目的:网上有很多关于Linux一键安装web环境全 ...

  6. Redis Hashes 巧用sort排序

    假设我们有如下的数据结构: 我们想按download排序,并且返回hash中的其他field,需要怎么处理呢? 我们首先会想到sort命令.对,就是这个sort. 我们先看一下sort的语法: 可以看 ...

  7. Uva 12657 移动盒子(双向链表)

    题意: 你有一行盒子,从左到右依次编号为1, 2, 3,…, n.可以执行以下4种指令:1 X Y表示把盒子X移动到盒子Y左边(如果X已经在Y的左边则忽略此指令).2 X Y表示把盒子X移动到盒子Y右 ...

  8. python——进制间的转换

    int(string_num, n)  string_num表示某种进制的字符串,n表示string_num是什么进制数 2.8.16 进制转为10进制:使用int()或者eval() 10 进制转为 ...

  9. vue 子组件修改父组件变量问题

    昨天遇到一个这样的场景, 主页面引用了一个子页面,子页面有个Redio选择,2个选项. 默认的,会从父组件传递一个参数给子组件作为默认值,实现默认选中效果,以及用来做反选. 开始没什么问题,页面都摆上 ...

  10. 56. spring boot中使用@Async实现异步调用【从零开始学Spring Boot】

    什么是"异步调用"? "异步调用"对应的是"同步调用",同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执 ...