1. http协议:超文本传输协议
ftp协议:
都是应用层协议,类似的还有smtp协议等。
2. 请求协议格式:
请求行
多个请求头信息: 头名称 头值
空行
请求体(get请求无请求体)
请求头简介:
content-Type | 设置url编码 |
Content-Length |
请求协议中为请求体长度,响应中为响应长度 反正就是长度就对了 |
Refer |
1 统计访问来源 2 防盗链 |
Refresh | 定时跳转 |
Expires:-1 | 过期时间 |
Cache-Control:no-cache |
与下一条兼容http协议版本 与相邻的两条设置禁用浏览器缓存 |
Prama:no-cache | |
3 响应协议:
响应头 (协议/版本 状态码 状态码的解释) 2开头 成功 ;3开头 转发;4开头 客户端问题;5开头 服务端问题
多个请求头信息 头名称 头值
空行
响应体
302 | 重定向 |
304 |
只对静态内容有效,与缓存 有关为了节约传输成本设定的 |
4 url编码 为了传输汉字而建立
第一步 字节数+128
第二步 转成16进制
第三步 在16进制前+上“%”
5 Servlet
a 每个Servlet是唯一的,他们处理的请求是不同的。
b 在servlet中通常可以:
1 接收请求数据
2 处理请求
3 完成相应
c 实现Servlet的三种方式
1 实现 javax.servlet.Servlet(有4个方法)
2 继承 javax.servlet.GenericServlet(1个方法)
3 继承 javax.servlet.Http.Httpservlet(与http协议相关的servlet)
d servlet中的大多数方法有服务器调用以及创建等等
e servlet特性:是非线程安全的,相对的器效率较高
f 注意事项:
1 尽量不要在servlet中创建成员
2 可以创建无状态成员
3 可以创建有状态成员,但状态必须为只读
g 初始换顺序:
h servlet中的反射:服务器用反射调用Servlet及其方法
i 一个项目中只有一个servletContext对象,我们可以在n个servlet中获取这个唯一的对象,使用它在多个servlet参数中传递数据,servletContext与项目的生存时间相同
j 域对象:(4个)
1 PageContext
2 ServletRequest
3 HttpSession
4 ServletContext
域对象都有一个Map,用来存取数据
k servletContext获取初始化参数
注意:与servlet获取的参数不是一个,因为所在的域不同,可以配置公共的初始化参数,为所有servlet共用,使用servletContext获取 使用httpServlet才能获取
// 真实的服务器端的文件地址 getServletContext().getRealPath("/index.jsp"); // 获得URL流 getServletContext().getResourceAsStream("/index.jsp"); // 获得URL地址 getServletContext().getResource("/index.jsp");
l 获取类路径下的资源
用k的方法即可