HTTP协议:
1.请求消息:客户端发送给服务器端的数据
*数据格式:
1.请求行
2.请求头
3.请求空行;
4.请求体
2.响应消息:服务器端发送给客户端的数据
*数据格式:
1.响应行
1.组成:协议/版本响应状态码状态码描述
2.响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。
1.状态码都是3位数字
2.分类:
1.1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后, 发送1xx多状态码
2.2xx:成功。代表:200
3. 3xx:重定向。代表: 302(重定向),304(访问缓存)
4.4xx :客户端错误。
*重定向的特点
1.地址栏发生变化
2.重定向可以访问其他站点(服务器)的资源
3.重定向是两次请求。不能使用request对象来共享数据
*
转发的特点:
1.转发地址栏路径不变
2.转发只能访问当前服务器下的资源
3.转发是一-次请求,可以使用request对象来共享数据
案例:
*文件下载山求:
1.页面显示超链接
2.点击超链接后弹出下载提示框
3.完成图片文件下载
*分析:
1.超链接指向的资源如果能够被浏览器解析,则在浏览器中展示,如果不能解析,则弹出下载提示框。不满足出求
2.任何资源都必须弹出下载提示框
3.使用响应头设试资源的打开方式:
- content-disposition :attachment ;filename=xxx
*步骤:
1.定义页面,编辑超链接hrefls性,指向Servlet,传递资源名称filename
2.定义Servlet
1.获取文件名称
2.使用字节输入流加载文件进内存
3.指定response的响应头: content - disposition: attachment; filename=XXx
4.将数据写出到response输出流
Cookie
1.概念:客户端会话技术,将数据保存到客户端
2.快速入门:
*
使用步骤:
1.创建Cookie对象, 绑定数据
*
new
Cookie(String name, string value )
2.发送Cooki e对象
*
response . addCookie(Cookie cookie)
3.获取Cookie, 拿到数据
- Cookie[] request. getCookies()
3.实现原理
基于响应头set- cookie和请求头cookie实现
-
cookie的细节
-
-次可不可以发送多个cookie?
*[可以
可以创建多个Cookie对象,使用response调用多次addCooki e方法发送cooki e即可。 -
cooki e在浏览器中保存多长时间?
1.默认情况下,当浏览器关闭后,Cookie数据被销毁
2.持久化存储:
setMaxAge(int seconds )
1.正数:将cookie数据写到硬盘的文件中。持久化存储。并指定cookie存活时间, 时间到后,cookie文件自动失效
2.负数:默认值
3.零:删除cookie信息 -
cookie共享问题?
1.假设在一个tomcat服务器中,部署了多个web项目,那么在这些web项目中cooki e能不能共享?
- . 默认情况下cooki e不能共享
setpath(string path): 设置cookie的获取范围。默认情况下,设置当前的虚拟目录
*如果要共享,则可以将path设置为"/"
2.不同的tomcat服务器间cookie共享问题? - setDomain(String path) :如果设置- - 级域名相同,那么多个服务器之间cookie可以共享
- setDomain(" . baidu. com" ) ,那么tieba. baidu. com和news . baidu. com中cookie可以共享