JAVAWEB系列 1-2

tomcat
XML
servlet
Httpservlet
cookie
Session

***服务器

就是网络信息的中转站,有什么功能呢?
1. 提高访问速度, 大多数的***服务器都有缓存功能。
2. 突破限制, 也就是FQ了
3. 隐藏身份

Http数据的格式

Requests消息结构

图片说明

请求行 Request line

    请求行结构:(三部分)
        请求方式:    
        请求的资源:url
        http协议的版本号

请求头 Requests header(注意请求头和body之间有空行)

请求头描述了客户端向服务器发送请求时使用的http协议类型,所使用的编码,以及发送内容的长度,refer等等。refer干嘛的,一般用来做简单的防跨站攻击    
以key: value的形式存在
主要的内容:
    User-Agent:产生请求的浏览器类型。
    Accept:客户端可识别的内容类型列表。
    Host:主机地址

请求体Requests body

通过键值对的形式,进行参数等的传递

Response消息的格式

响应行:Response line

    响应行结构:
        http协议版本
        状态码
        状态码的文本描述

响应头:Response header:

用来描述服务器回给你对所返回的content的一些一些描述,我是什么服务器,我返回的是啥编码,我返回的内容有多长等等
键值对的方式存在,下面是基本的信息
Location: (控制浏览器显示哪个页面) 
Server:(服务器的类型) 
Content-Encoding: (服务器发送的压缩编码方式) 
Content-Length: 80(服务器发送显示的字节码长度) 
Content-Language: (服务器发送内容的语言和国家名) 
Content-Type: (服务器发送内容的类型和编码类型) 
Last-Modified: (服务器最后一次修改的时间) 
Refresh: 1:(控制浏览器1秒钟后转发URL所指向的页面) 
Content-Disposition:(服务器控制浏览器发下载方式打开文件) 
Transfer-Encoding: (服务器分块传递数据到客户端)  
Set-Cookie:(服务器发送Cookie相关的信息) 
Expires: -1(服务器控制浏览器不要缓存网页,默认是缓存) 
Cache-Control: no-cache(服务器控制浏览器不要缓存网页) 
Pragma: no-cache(服务器控制浏览器不要缓存网页)   
Connection: close/Keep-Alive(HTTP请求的版本的特点)   
Date: 响应网站的时间)

响应正文:Response body

返回一个html文件的源代码

Servlet

运行在服务器端的,用来处理客户端请求并作出响应的应用程序

Servlet:java Servlet的简称

定义:小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容(对客户端的或者浏览器的请求进行处理,并进行响应)    
Servlet的工作流程:
    客户端发送请求至服务器端
    服务器将请求信息发送至 Servlet
    Servlet 生成响应内容并将其传给服务器
    响应内容动态生成,通常取决于客户端的请求
    服务器将响应返回给客户端

Jsp与servlet之间的执行流程:

.jsp >转译  _jsp.java:这个就是一个servlet  >编译 _jsp.class >执行 html>通过http响应返回浏览器

Servlet生命周期

加载 Servlet:当 Tomcat 第一次访问 Servlet 的时候,Tomcat 会负责创建 Servlet 的实例。
初始化 Servlet:当 Servlet 被实例化之后,Tomcat 会调用 init() 方法来初始化这个对象。
处理服务:当浏览器访问 Servlet 的时候,Servlet 会调用 service() 方法处理请求。
销毁:当 Tomcat 关闭或者检测到 Servlet 要从 Tomcat 删除的时候,会自动调用 destroy() 方法,让该实例所占用的资源释放掉。一个 Servlet 如果长时间不被使用的话,也会被 Tomcat 自动销毁。

Sevlert-config

作用:用于加载Servlet的初始化参数,在一个web应用可以存在多个ServletConfig对象,一个Servlet对应一个ServletConfig对象

Servlet的初始化参数配置

<servlet> <servlet-name>ConfigServlet</servlet-name> <servlet-class>ysdrzp.config.ConfigServlet</servlet-class> <init-param> <param-name>aaa</param-name> <param-value>value of aaa</param-value> </init-param> <init-param> <param-name>bbb</param-name> <param-value>value of bbb</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>ConfigServlet</servlet-name> <url-pattern>/configServlet</url-pattern> </servlet-mapping>