1. Web应用程序简介

关于HTML

Web应用程序,是由客户端和服务器端两个部分组成的。客户端时浏览器,服务器端是HTTP服务器。服务器上的文件或资源必须产生HTML。

关于HTTP

HTTP——架构在TCP/IP之上应用层的一种协议。

两个基本特性:

  • 基于请求/响应模型
  • 无状态

客户端队服务器发出一个取得资源的请求,服务器将要求的资源响应给客户端,每次联机只作一次请求/响应。没有请求就不会有响应。

服务器响应客户端之后,就不会记得客户端的信息,更不会去维护与客户端有关的状态。

GET和POST

HTTP所有通信数据都是使用“字符”来进行协议交换。

GET

用于等幂操作。纯粹请求服务器上的资源,而不改变服务器上的数据或状态。

POST

用于非等幂操作。POST发送的请求,可能会影响服务器上的数据或状态。

URL编码

百分比编码=%+16进制

保留字符

  • :
  • /
  • ?
  • &
  • =
  • @
  • %

中文字符

如果是 UTF-8 编码,会用3个十六进制表示

"林" ——> utf-8 为%E6%9E%97

Java API

编码 java.net.URLEncoder.encode(char, char_set)

解码 java.net.URLEncoder.decode(char, char_set)

容器

浏览器 ——> 实体服务器 <——> HTTP服务器程序 <——> Web容器 <——> Servlet

一个请求/响应的例子:

  1. 客户端对 Web 服务器发出 HTTP 请求
  2. HTTP 服务器收到 HTTP 请求,将请求转由 Web 容器处理, Web 容器会剖析 HTTP 请求内容,创建各种对象(如 HttpServletRequest、HttpServletResponse、HttpSession 等)。
  3. Web 容器由请求的 URL 决定要使用哪个 Servlet 来处理请求(事先有开发人员定义好)。
  4. Servlet 根据请求对象(HttpServletRequest)的信息决定如何处理,通过响应对象(HttpServletResponse)来创建响应。
  5. Web 容器与 HTTP 服务器沟通,Web 服务器将响应转换为 HTTP 响应并传回客户端。

对于每个请求,容器是创建一个线程并转发给适当的 Servlet 来处理,因此可以大幅减轻性能上的负担,但也因此要注意线程安全问题。

JSP 和 Servlet 的关系

JSP 最终会被容器转译为 Servlet 并加载执行。

JSP 与 Servlet 是一体两面的关系。

MVC 与 Mode2

MVC

  • 模型不会有画面相关对程序代码
  • 视图负责画面相关逻辑
  • 控制器知道某个操作必须调用哪个模型

Mode 2

由于 Web 应用是基于 HTTP,必须基于请求/响应模型,没有请求就不会有响应,也就是 HTTP 服务器不可能主动对浏览器发出响应,因此形成了 Mode 2 架构。

  • 控制器:取得请求参数、验证请求参数、转发请求给模型、转发请求给画面
  • 模型:接受控制器的请求调用,负责处理业务逻辑、负责数据存取逻辑等
  • 视图:接受控制器的请求调用,会从模型提取运算后的结果,根据需求呈现所需的画面
posted @ 2016-10-04 19:09  勇敢的少年啊  阅读(278)  评论(0编辑  收藏  举报