第一章
1.1、Web的概念
1.1.1、web的具有以下3个特征:
- 用超级文本技术HTML来表达信息,以及建立信息与信息的链接。
- 用统一资源定位技术URL来实现网络上信息的精确定位。
- 用网络应用层协议HTTP来规范浏览器与Web服务器之间的通信过程。
1.2、URL简介
1.2.1、URL组成:
- 应用层协议。
- 主机IP地址或域名。
- 资源所在路径、文件名。
格式如下:
应用层协议://主机IP地址或域名/资源所在路径/文件名
1.3、HTTP简介
1.3.1、HTTP协议规定Web的基本运作过程基于客户/服务器通信模式
-
一次简单的信息交换过程:
-
客户端与服务器端建立TCP连接
-
客户端发出HTTP请求
-
服务器端发回相应的HTTP响应。
-
客户端与服务器端之间的TCP连接关闭
-
HTTP请求格式:
-
请求方法、URI和HTTP协议的版本
-
请求头
-
请求正文 (URI(Universal Resource Identifer,统一资源定位符) 用于标识要访问的网络资源在HTTP请求中,通常之要给出服务器的根目录的相对目录即可,以“/”开头)
-
HTTP响应格式:
-
HTTP协议的版本、状态代码和描述。
-
响应头
-
响应正文(浏览器根据正文的类型进行相应的相应,如是rar那么会自动弹出下载窗口)
第二章
2.1 、Tomcat
- Tomcat 是一个Servlet容器。本身完全用java语言编写。
- Servlet是一种运行在服务器上的小插件。
第三章
3.1、Servlet
3.1.1、servlet工作原理:
- Tomcat是Servlet的运行环境,即一个Servlet容器。
- Servlet容器的作用是负责处理客户请求,当客户请求来到时,Servlet容器获取请求,然后调用某个Servlet,并把Servlet的执行结果返回给客户。
- Servlet容器的工作过程是:当客户请求某个资源时,Servlet容器使用ServletRequest对象把客户的请求信息封装起来,然后调用JavaServlet API中定义的Servlet的一些生命周期方法,完成Servlet的执行,接着把Servlet执行的要返回给客户的结果封装到 ServletResponse对象中,最后Servlet容器把客户的请求发送给客户,完成为客户的一次服务过程。
3.1.2、servlet生命周期
Servlet生命周期分为三个阶段:
- 初始化阶段 调用init()方法
- 响应客户请求阶段调用service()方法
- 终止阶段调用destroy()方法
Servlet初始化阶段:
在下列时刻Servlet容器装载Servlet:
- Servlet容器启动时自动装载某些Servlet,实现它只需要在web.XML文件中的<Servlet></Servlet>之间添加如下代码:
<loadon-startup>
1
</loadon-startup>
- 在Servlet容器启动后,客户首次向Servlet发送请求。
- Servlet类文件被更新后,重新装载Servlet。
- Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。
3.1.3、静止页面被客户端缓存:
- 许多浏览器为了能快速向用户展示所请求的页面,会把来自服务器的网页存放在客户端的缓存中,如果用户多次请求访问服务器端的同一个网页,并且在客户端的缓存中年已经存在该网页,那么浏览器只需要从缓存中获取该网页,并不需要在请求访问远程服务器上的网页浏览器端的缓存技术适用于保存服务器端的静态网页,以及不包含敏感数据的网页,一下情形中,服务器往往不希望客户端被浏览器缓存:
- 网页包含随时会被更新的动态内容,因为如果浏览器向用户展示本地缓存中的网页,有可能展示的是过期的网页
- 网页中包含敏感的数据,如特定用户的银行账户信息,电子邮件内容,因为如果浏览器把网页保存在本地缓存中有可能被其他未授权的用户访问到该网页服务器端的HttpServlet可以通过设置特定的HTTP响应头来禁止客户端缓存网页:
- response.addHeader("Pragma","no-cache");
- response.setHeader("Cache-Control","no-cache");
- response.setHeader("Expires","0");
- "Parama"选项适应于采用HTTP1.0的浏览器,在HTTP1.1中,"Cache-Control"选项用来决定客户端是否可以缓存网页,如果取值为"no-cache"那么客户端不会把Servlet生成的网页保存在本地缓存中,HTTP1.0和HTTP1.1都支持"Expires"选项因此所有的浏览器都能识别该选项,"Expires"选项用于设定网页过期的时间,如果为0,就表示立即过期,如果用户重复请求访问该网站,那么浏览器每次都应该从服务器端获取最新的网页数据。