Cookie
一,cookie
英文直接翻译过来的意思呢就是小甜品 Cookie英文意指饼干,不过在电脑术语中它可不像饼干那么简单。简单的说,Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机。当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都记录下来。当下次你再光临同一个网站,Web服务器会先看看有没有它上次留下的Cookie资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你。
Cookie的使用很普遍,许多提供个人化服务的网站,都是利用Cookie来辨认使用者,以方便送出使用者量身定做的内容,像是Web接口的免费E-mail网站,都要用到 Cookie。Cookie中记载的资料相有限,Cookie是安全的。网站不可能经由Cookie获得你的E-mail地址或是其它私人资料,更没有办法透过Cookie来存取你的计算机。但是如果你实在不喜欢Web服务器乱丢饼干(Cookie)到你家,当然可以让浏览器拒绝网站存放Cookie到你的计算机。只要在IE的“工具”菜单下选择“Intertnet选项”的“安全”,按自定义级别,将Cookie部分设为关闭,按确定,关闭浏览器,再重新启动浏览器即可。当你关闭Cookie之后,很多网站的个人化服务功能很可能也不能再使用了.
二,小例
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//把请求信息中用户账号写成cookie
//请求消息中将账号和昵称获取
String name=request.getParameter("name");
String nickName=request.getParameter("nickName");
//判断有没有输入name和nickname
if(name==null||nickName==null){
out.println("请输入!!!");
return;
}
//创建对象保存会话状态信息
Cookie cookie1=new Cookie("name",name);
cookie1.setMaxAge(24*60*60);
Cookie cookie2=new Cookie("nickName",nickName);
System.out.println(cookie1.getName()+cookie1.getValue());
cookie1.setValue("Tom");
//把cookie对象添加到响应消息中发送回客户端
cookie1.setDomain("localhost");
cookie2.setDomain("localhost");
response.addCookie(cookie1);
response.addCookie(cookie2);
out.println("欢迎访问本servlet");
//从请求消息中将cookie获取到
Cookie cookies[]=request.getCookies();
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
System.out.println(cookies[i].getName()+":"+cookies[i].getValue()+":"+cookies[i].getMaxAge()+":"+cookies[i].getDomain());
}
}
out.flush();
out.close();
}
三,常用函数
//创建对象保存会话状态信息
Cookie cookie1=new Cookie("name",name);
//有效期
cookie1.setMaxAge(24*60*60);
//设置内容为 tom
cookie1.setValue("Tom");
//设置域名
cookie1.setDomain("localhost");
//添加
response.addCookie(cookie1);
//保存值 "name" 是名字 name 是值
Cookie cookie1=new Cookie("name",name);
四,小结
一般要是想调用cookie中存得值不能直接得到要用循环:
Cookie cookies[]=request.getCookies();
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
String last=cookies[i].getName();
if("last_time".equals(last)){
out.println("你是老用户,上次访问的时间:"+cookies[i].getValue());
break;
}
}
}else{
out.println("你是第一次访问!!!");
}
Cookie cookie=new Cookie("last_time",new Date(System.currentTimeMillis()).toString());
cookie.setMaxAge(30*24*60*60);
response.addCookie(cookie);
要验证,有时还会有很多cookie从里面挑,这是显示上次访问的时间的代码。
Cookie[] cookies = request.getCookies();
Integer n=1;
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
String name=cookies[i].getName();
if("number".equals(name)){
n=Integer.parseInt(cookies[i].getValue())+1;
out.println("您是第"+n+"访问!!!");
}
}
}else{
out.println("您是第一次访问!!!");
}
Cookie cookie=new Cookie("number",n.toString());
cookie.setMaxAge(30*24*60*60);
response.addCookie(cookie);
这是记录你访问多少次的cookie代码!!!