目录
一、背景
二、Web应用
2.1 HTML
2.2 HTTP
2.3 URL
2.4 Servlet
2.4.1 编写第一个Servlet程序
2.5 JSP
2.6 容器
2.7 URL映射到Servlet
三、一个完整的Java Web基础应用
四、小结
一、背景
Spring生态的强大与完善,使得大多数的Java程序员,在刚刚接触Java Web应用开发时,往往依赖于SSM、SpringBoot等各种高级框架。
Java Web的基础的体系结构是什么?到底是怎么运作的?这些高级的框架与基础的体系结构之间是什么关系?
只有真正理清了这些底层基础的结构,才能完全理解高级框架的设计原理,在使用框架开发项目时做到事半功倍。
本文旨在暂时抛开这些高级框架,重走Java Web底层之路。
二、Web应用
Web应用的基础模型
用户通过Web浏览器向某个Web应用发出一个请求
Web服务器得到请求后,处理并查找资源,并向Web浏览器返回一个响应结果。
2.1 HTML
Web服务器需要对客户端的请求提供响应内容,Web浏览器需要将这些响应内容呈现给用户。两者需要形成统一的对话语言,Web应用中形成的共同的语言被称为HTML(HyperText Markup Language:超文本标记语言)。
HTML包含数十个标记,数千种标记属性,能过这些标记定义了网页内容的含义和结构;正是无数个具有相互链接的HTML网页构成了我们现在的互联网世界。
标记描述
html
定义HTML文档的边界
head
定义HTML文档头部的边界
body
定义HTML文档本体的边界
tile
定义HTML文档本体的标题
form
定义一个表单
a
定义一个超链接
...
...
欢迎2.2 HTTP
Web浏览器与Web服务器之间相互通信同样需要建立统一的协议:Web应用的标准协议被称为HTTP(Hyper Text Transfer Protocol)超文本传输协议。
HTTP协议规定了超文本传输所要遵守的规则:HTTP请求可发起常用的GET或者POST请求;HTTP的响应中可以包含HTML内容。
curl https://www.baidu.com -v
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.baidu.com
> Accept: */*
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: private, no-cache, no