黑马程序员技术交流社区
标题:
【石家庄校区】Cookie
[打印本页]
作者:
巴拉巴拉x
时间:
2018-5-21 10:35
标题:
【石家庄校区】Cookie
本帖最后由 巴拉巴拉x 于 2018-5-21 10:37 编辑
Cookie
会话技术
什么是会话技术
用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为一次会话
常见的会话技术
Cookie
将数据保存到客户端浏览器
Session
将数据保存到服务器
出现的原因
ServletContext,是共享的域对象,不能给单个用户存储数据
ServletRuquest,域对象范围太小,不能保存多次添加的数据.
由于以上都不能完成指定功能,所以使用Cookie来完成
使用Cookie来保存购物信息
把数据保存到客户端
一次请求会把对象ID带回浏览器,下次请求会带着这次的ID一起去访问另一对象,并把这个对象的ID也带回来,并保存到浏览器客户端.
使用Session保存购物信息
把数据保存到服务器端
客户端访问服务器,服务器会开辟一块区域,而且这块区域有一个地址值,响应的时候会把这个ID保存到浏览器客户端.
Cookie技术的使用
向浏览器保存数据
HttpServletResponse类中的一个方法
void addCookie(Cookie cookie)
获得浏览器带过来的Cookie
cookie.getgetValue(),
jsp的概述
什么是jsp:Java代码 + HTML元素 + JSP内置的东西
Java Servlet Pages(Java服务器端页面)
执行过程
JSP会被翻译成Servlet,然后再编译成class文件进行执行
创建位置:在WebContent目录下创建
jsp的本质其实还是一个Servlet.最终执行的时候还是会被编译成一个java类,然后再编译成.class文件
JSP的嵌入Java代码:JSP的脚本元素
<%! 代码 ; %> :代码会被编译成成员属性(成员变量或者成员方法),可以定义变量,方法,类
<% 代码 ; %> :代码会被编译成Service方法内的代码.变量就会变成局部变量,定义类,内部类,不可以定义方法.
<%= 代码 %> :代码最后不能写分号,翻译成service方法内部的out.print(代码),内容.
cookie 的常用API
cookie 常用API
getName()
getValue()
setDomain(String name):设置Cookie的有效域名
setPath(String path):设置Cookie的有效路径:一般用于删除持久性的cookie.
setMaxAge(int maxAge):设置Cookie的有效时间
Cookie的分类
会话级别的Cookie:默认,关闭浏览器就会销毁
持久级别的Cookie
setMaxAge(int maxAge):把参数设置成0就是销毁,参数是单位是秒
用户数据私有化的过程
cookie 私有到私人的电脑上
session 在服务器中开辟有一块单独的区域给每个对象,并把这个区域的打开方式保存到客户端.
Cookie存储中文的问题
不能直接存中文
先把中文编码,再存到cookie中
URLEncoder.encode(String name, "utf-8"):存入
获取:先获取value的值,再解码
URLDecoder.decode(String value,"utf-8")
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2