2.在程序中如何实现Cookie信息的设置,读取和删除
设置:你可以在IE的“工具/Internet选项”的“常规”选项卡中,选择“设置/查看文件”,查看所有保存到你电脑里的Cookies。这些文件通常是以user@domain格式命名的,user是你的本地用户名,domain是所访问的网站的域名。如果你使用NetsCape浏览器,则存放在“C:\PROGRAMFILES\NETS- CAPE\USERS\”里面,与IE不同的是,NETSCAPE是使用一个Cookie文件记录所有网站的Cookies。
我们可对Cookie进行适当设置:打开“工具/Internet选项”中的“隐私”选项卡(注意该设置只在IE6.0中存在,其他版本IE可以单击“工具/Internet选项” “安全”标签中的“自定义级别”按钮,进行简单调整),调整Cookie的安全级别。通常情况,可以调整到“中高”或者“高”的位置。多数的论坛站点需要使用Cookie信息,如果你从来不去这些地方,可以将安全级调到“阻止所有Cookies”;如果只是为了禁止个别网站的Cookie,可以单击“编辑”按钮,将要屏蔽的网站添加到列表中。在“高级”按钮选项中,你可以对第一方Cookie和第三方的Cookie进行设置,第一方Cookie是你正在浏览的网站的Cookie,第三方Cookie是非正在浏览的网站发给你的Cookie,通常要对第三方Cookie选择“拒绝”。你如果需要保存Cookie,可以使用IE的“导入导出”功能,打开“文件/导入导出”,按提示操作即可。
Cookie读写的注意事项
1.读取Cookie最简单的方法
假设你存入了一个名字叫Username的Cookie,使用EL表达式取值最为简单:${cookie.Username.value}
2.Cookie中存入中文,出现乱码的解决办法
保存cookie
String value = java.net.URLEncoder.encode("你需要保存的中文");
Cookie namecookie = new Cookie("username",value); //Cookie usercookie = new Cookie("draftflow_user",user); namecookie.setMaxAge(60*60*24*30*365); namecookie.setPath("/"); response.addCookie(namecookie);
读取 cookie
Cookie[] cookies = request.getCookies(); if(cookies!=null) { String name = ""; for (int i = 0; i < cookies.length; i++) { Cookie c = cookies[i]; if(c.getName().equalsIgnoreCase("draftflow_username")) { name =java.net.URLDecoder.decode(c.getValue());//解码 }
}
3.IE7下,Cookie存放的目录没有变,还是Document and Setting/用户名/,只不过文件夹默认是隐藏的,需要去掉隐藏系统文件夹选项才能看到
4.setMaxAge很重要,如果不进行设置的话,关闭浏览器Cookie就失效了
删除:IE的话,有两种方法
1:右键IE图标-属性-常规-删除COOKIE
2:开始-控制面板-Internet选项-常规-删除COOKIE