禁止了浏览器 用cookie还是session,session 还可以用吗

cookie禁用后session还有有用吗? - ITeye问答
登录程序:
1. login.jsp
&%@ page contentType="text/html" pageEncoding="GBK" %&
&html&
&title&登录页面&/title&
&h1&用户登录&/h1&
&hr size="2"&
&form action="login.jsp" method="post"&
用户名:&input type="text" name="name"/& &/br&
密码:&input type="password" name="password"/&&br&
&input type="submit" value="登录"/&
&input type="reset" value="重置"/&
String name = request.getParameter("name") ;
String password = request.getParameter("password") ;
if(!("".equals(name) || name == null || "".equals(password) || password == null)){
if("admin".equals(name) && "admin".equals(password)){
session.setAttribute("name",name) ;
response.setHeader("refresh","3;URL=welcome.jsp") ;
&h3&登录成功!三秒后自动跳转到欢迎页面,点击&a href="welcome.jsp"&这里&/a&手动跳转!&/h3&
&h3&登录失败!&/h3&
Session ID : &%=session.getId()%&
2、welcome.jsp
&%@ page contentType="text/html" pageEncoding="GBK" %&
&html&
&title&欢迎页面&/title&
if(session.getAttribute("name") != null){
&h3&欢迎光临 &%=session.getAttribute("name")%& 用户登录!&/h3&
&h3& &a href="logout.jsp"&注销&/a&
&h3&请登录后在访问,&a href="login.jsp"&登录&/a&&/h3&
分析:
Cookie为浏览器客户端,Session为服务器端.禁用Cookie跟Session没有直接联系.
这是我在其他论坛技术论坛上看见的。感觉很有道理。
但是我上面的登录程序,给我的结果很意外,操作之前设置IE浏览器,禁用cookie
--禁止 Cookie 使用.?-- 高级 ?-- 隐私? Internet选项?工具--
1.首先访问 login.jsp ,输入正确的用户、密码,设置用户名到session中,三秒之后自动跳转到welcome.jsp页面。
2. 在welcome.jsp中 我从login.jsp 页面上设置session属性范围 取得session属性,结果却为空!感觉很意外!!
照常理说,禁用Cookie跟Session没有直接联系 ,那应该能够取得session的属性!
这是为何?
一般情况下不能用 因为sessionId保存在cookie里,但如果你非要禁用cookie,你可以把sessionId文件化,比如说,你可以保存在XML文件里或者是直接保存在数据库里,需要的时候再从文件中取一下,一般都不会这么做,因为没必要.
Session和Cookie的区别就是,一个将所有数据存在客户端,一个将数据存在服务器的保管箱中,然后将保管箱号码(Session Id,唯一)存在客户端。
一般Session会依赖Cookie,Session Id还是用Cookie存起来的,当然也有通过url存储的(一些古老的论坛,会在所有url后面加s=xxxxxxxxx,这个就是以url参数存储),但成本比较大(需要修改各处链接)。
已解决问题
未解决问题禁用cookie后session是如何设置的
我们都知道当在session
会话有基于cookie和基于url两种传递SESSIONID的方法。为了实现客户端禁止cookie发送的情况也不影响客户登陆网站,可以设置
php.ini中 session.use_trans_sid=1
,表示当客户端浏览器禁止cookie的时候,页面上的链接会基于url传递SESSIONID。但是很多人仅仅设置了这一个选项并没有达到效果,本人也
遇到此问题,后来一番研究发现
php.ini 文件中还有两个选项
session.use_cookies=1
session.use_only_cookies=1
仔细琢磨上面的英文就会发现其意义
session.use_cookies表示是否开始基于cookies的session会话
session.use_only_cookies 表示是否只开启基于cookies的session的会话方式
所以如果想要在浏览器开启cookie的时候用基于cookie的方式,在未开启cookie的时候使用url的方式就进行如下设置(最常用的方式,推荐)
在php.ini文件中
session.use_trans_sid=1
session.use_only_cookies=0
session.use_cookies=1
或者 在php程序中
ini_set(“session.use_trans_sid”,”1&P);
ini_set(“session.use_only_cookies”,0);
ini_set(“session.use_cookies”,1);
如果不管浏览器是否开启cookie,都使用url的方式就进行如下设置(这个例子主要想说明一下设置session.use_only_cookies
和 session.use_cookies的区别)
在php.ini文件中
session.use_trans_sid=1
session.use_only_cookies=0
session.use_cookies=0
或者 在php程序中
ini_set(“session.use_trans_sid”,”1&P);
ini_set(“session.use_only_cookies”,0);
ini_set(“session.use_cookies”,0);
动手自己试一试 你就会明白session.use_only_cookies 和
session.use_cookies的区别。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。关于PHP中浏览器禁止Cookie后,Session能使用吗?_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
关于PHP中浏览器禁止Cookie后,Session能使用吗?
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢1124人阅读
servlet&jsp(48)
用户禁止cookie后,如何继续使用session
&& &(1)如果用户禁止cookie,服务器仍会将sessionId以cookie的方式发送给浏览器,但是,浏览器不再保存这个cookie(即sessionId)了。
&&& (2)如果想继续使用session,需要采取其他方式来实现sessionId的跟踪。
&& &&&& 可以使用url重写来实现sessionId的跟踪。
&&& (3)url重写
&& &&&& a,什么是URL重写
&& &&& &&&& 浏览器在访问服务器上的某个地址时,不能够直接写这个组件的地址,而应该使用服务器生成的这个地址。
&& &&& &&&& 比如,
&& &&& &&& &&&& &a href=&some&&someServlet&/a& error
&& &&& &&& &&&& &a href-&&%=response.encodeURL(&some&)%&&&&/a&
&& &&& &&&& encodeURL方法会在&some&后面添加sessionId。
&& &&& & b,如何进行url重写。
&& &&& &&& &&&& //encodeURL方法用在链接地址、表单提交地址。
&& &&& &&& &&& &response.encodeURL(String url);
&& &&& &&& &&& &
&& &&& &&& &&& &//encodeRedirectURL方法用于重定向地址。
&& &&& &&& &&& &response.encodeRedirectURL(String url);
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:153269次
积分:4923
积分:4923
排名:第5677名
原创:351篇
转载:36篇
评论:15条
(6)(1)(7)(4)(1)(13)(11)(3)(8)(26)(42)(18)(42)(45)(7)(40)(52)(6)(3)(2)(1)(1)(4)(3)(31)(10)HttpServletResponse.encodeURL( url)重写URl,对给定的url,通过加上session ID的方式进行编码;
HttpServletResponse.encodeURL( url)重写URl,对给定的url,通过加上session ID的方式进行编码;
&a href='maillogin.jsp'&
&a href="&%=response.encodeURL('maillogin.jsp')%&"&
本文出自 “” 博客,请务必保留此出处
版权声明:本文内容由互联网用户自发贡献,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至: 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】阿里云数据库MySQL金融版发布,实现日志多副本同步复制,提供金融级可靠性!8月10日,阿里云数据库掌门人褚霸等大牛直播,揭开它的背后故事!赶紧报名吧&&
云数据库HybridDB(ApsaraDB HybridDB)是一种在线MPP大规模并行处理数据仓库服务。云数据...
快速、完全托管的TB/PB级数据仓库解决方案,向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更...
支持 PB 级数据存储的海量分布式关系型数据库。它支持 MySQL 数据库接口,采用可扩展的分布式体系, 稳定可...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
2017杭州云栖大会火热抢票
Loading...}

我要回帖

更多关于 360浏览器禁止cookie 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信