request 的作用
1,获取请求参数
2,请求转发
3,作为域对象数据共享
4,获取ServletContext
ServletContext 对象
概念:代表整个web应用,可以和程序的容器(服务器)来通信
功能:
|获取MIME类型
* 在互联网通次你过程中定义的一种文件类型
格式: 大类型/小类型 text/html
获取: String getMimeType(String File)
application/json
||域对象:共享数据 selectContext域是什么范围()
setAttribute(String name,Object value)
getAttribute(String name)
removeAttribute(String name)
*** ServletContext对象范围: 所有用户所有请求的数据
|||获取对象的真实(服务器)路径
getRealpath()
eg:获取src目录下的文件 会被放置在WEB-INF下的Classes目录下
获取:通过request对象获取
request.getServletContext()
通过HTTPservlet获取
this.getServletContext()
**: 从项目开始到结束ServletContext只能有一个
下载案例:
下载本质流的对拷
服务器的文件转成输出流,通过responce输出流把输入流回写浏览器
实现步骤:
1,获取服务器上文件输入流
获取要下载的文件名称
根据文件名获取问津的真实路径
将文件转成输出流
2, 设置两个头
content-type --> 设置文件的mime类型 context.getMimeType(文件名)
判断浏览器:
if(火狐){
把文件名用BASE64编码
}else{
把文件名url进行编码
}
content-disposition ---> 表示文件以下载的形式操作 response.setHeader
3 流的对拷
页面显示超链接
点击超链接后弹出下载提示框
完成图片文件下载
-------------------------------
四个域:
----------------------------------
会话:一次会话中包含多次请求和响应
一次会话:浏览器第一次给服务器发送请求,会话建立,直到有一方断开为止
功能:在一次会话的范围内的多此请求间,共享数据
方式:
1,客户端会话技术:cookie
2,服务器端会话技术:
cookie原理:
1,cookle由服务器创建
2,创建coolie最后要返回给浏览器--> responce.addCookie(c)
响应头:--> SET-CooKIE :名字和值
3,浏览器会接收响应,页面展示,处理响应头信息,
4,
5,
实现原理:
*基于响应头set-cookie 和请求头cookie实
cookie细节
1, 一次可不可以发送多个cookie?
可以
可以创建多个Cookie对象,使用responce调用多次addCookie发送Cookie即可
2, cookie在浏览器中保存多长时间?
默认情况下,当浏览器关闭后,cookie数据被销毁
持久化存储
setMaxAge(int seconds)
1,正数:将cookie数据写到硬盘文件中.持久化存储.cookie存活时间长
2,负数:默认值
3,零:删除cookie信息
3, cookie能不能存中文
Tomcat 8之前 cookie中不能存储中文数据
需要将中文数据转码----一般采用url编码来使用
Tomcat8开始支持,建议如果出新中文,空格,特殊字符,建议先进行url编码在进行操作
4, cookie获取范围有多大?
假如在Tomcat中部署多个项目,那么在这些项目中能不能共享
默认情况下不能共享
setpath(String path):设置cookie的取值范围.默认情况下,设置当前虚拟目录
* 如果要共享,可以将path设置为""
不同的Tomcat服务器间cookie共享问题:
setDomain(String path):可以设置一级域名相同,那么多可服务器之间的cookie可共享
c.setpath()
c.setDomain()
设置cookie的有效路径注意事项:
cookie的特点和作用:
有大小(4k)和个数(20)的限制
数据在浏览器保存
不安全
cookie默认关闭浏览器就会销毁
1,cookie存储数据在客户端浏览器
2,浏览器对于单个cookie的大小有限制以及对同一个域名下的cookie数量也有限制
* 作用
1,cookie一般以用于存储少量的不太敏感的数据
2,在不登录的情况下,完成服务器对客户端的身份识别 |
|