标签:java
1.1 案例一:使用Servlet完成一个用户登录的案例.1.1.1 需求:? 协议:
* 什么是协议:规定双方需要遵守的规则.
? HTTP协议:
* 什么是HTTP协议:用来规定浏览器与服务器之前需要遵守的规则.
![](http://i2.51cto.com/images/blog/201805/21/4e240f07b0bd6b1c9545ff695376ff85.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
? HTTP协议的作用:规范浏览器和服务器之间的数据传递.
? HTTP协议的特点:
* 基于请求和响应的模型.
* 必须先有请求后有响应.
* 请求和响应必须成对出现.
* 默认的端口号是80.
? HTTP协议的版本:
* 1.0 :每次响应后即刻关闭了连接.
* 1.1 :现在使用.不是每次响应后挂断,等待长时间以后没有请求会挂断.
【HTTP协议的演示】
抓包分析:GET方式:
* 请求部分:
GET /day09/demo1-http/demo2.html?name=aaa&age=23 HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 59176-10011
Referer: http://localhost:8080/day09/demo1-http/demo1.html
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: localhost:8080
DNT: 1
Connection: Keep-Alive
抓包分析:POST方式:
POST /day09/demo1-http/demo2.html HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 59176-10031
Referer: http://localhost:8080/day09/demo1-http/demo1.html
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 15
DNT: 1
Connection: Keep-Alive
Cache-Control: no-cache
name=bbb&age=38
* 响应部分:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"145-1461807615933"
Last-Modified: Thu, 28 Apr 2016 01:40:15 GMT
Content-Type: text/html
Content-Length: 145
Date: Thu, 28 Apr 2016 01:43:52 GMT
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Demo2.html</h1>
</body>
</html>
【HTTP协议的详解】
? 请求部分
* 请求行
* 提交方式:
* 提交方式有很多,常用的GET和POST:
* GET和POST的区别:
* GET的提交的参数会显示到地址栏上,而POST不显示.
* GET往往是有大小限制的,而POST没有大小的限制.
* GET没有请求体,而POST有请求体.
* 提交路径:
* 协议版本:
* 请求头
* 都是键值对的形式显示的.一般一个key对应一个value,也有个别的是一个key对应多个value.
* User-Agent :代表浏览器的类型. --- 文件下载:下载中文文件:IE使用URLEncodor进行编码,而Firefox使用Base64编码.
* Referer :代表的是网页的来源. --- 防盗链.
* If-Modified-Since :通常与响应中的头Last-Modified一起使用查找本地缓存.
* 请求体
* 就是POST提交方式的提交的参数.
? 响应部分
* 响应行:
* 协议版本
* 状态码 :
* 200 :成功
* 302 :重定向
* 304 :查找本地缓存
* 404 :资源不存在
* 500 :服务器内部错误
* 状态码描述
* 响应头:键值对,一般一个key对应一个value,也有一个key对应多个value.
* Last-Modified :与请求中的If-Modified-Since一起使用查找本地缓存.
* Content-Dispostion :文件下载的使用使用的一个头信息.
* Location :重定向的跳转的路径.
* Refresh :定时刷新/定时跳转.
* 响应体:显示浏览器的页面的内容.
【Servlet的概述】
? 什么是Servlet:
* 就是一个运行在WEB服务器上的小的Java程序,用来接收和响应从客户端发送过来的请求,通常使用HTTP协议.
* Servlet就是SUN公司提供的一个动态网页开发技术.
? Servlet的作用:
* 用来处理从客户端浏览器发送的请求,并且可以对请求作出响应
? 使用Servlet:
* 编写一个类实现Servlet接口.
* 将编写的这个类配置到服务器中.
? Servlet的入门:
* 编写类:
public class ServletDemo1 implements Servlet{
@Override
/**
* 为用户处理请求和响应的方法.
*/
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
res.getWriter().println("Hello Servlet...");
}
...
}
* 配置:
```
标签:java
原文地址:http://blog.51cto.com/13517854/2118614