JSP中Session 与Cookie 的问题,想请高手指点

sunthing 2003-08-19 11:09:21
环境:Win2k+tomcat4.1.24+ jdk1.42+ Apache2.04
http协义是无状态的,服务器为与客户端取得联系,使用了Session
使用session 时,服务器会向客户端发关一个Sessionid的Cookie,这样服务器就根据客户端的Cookie能识别出每个客户端了,
现在的问题是:如果客户端关闭了cookie 那么服务器不能取得cookie了,也就不能识别客户端了,这种情况下,如何让服务端能识别出来呢?

在PHP中,可以在URL中将session及sessionID作为一个参数值对带着跑

在JSP中,其解决方法是怎样的,请高手指点!
...全文
128 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunthing 2003-08-26
  • 打赏
  • 举报
回复
up
sunthing 2003-08-21
  • 打赏
  • 举报
回复
就是因为我不想用cookie,也不想Session也用cookie 所以要找其他方法,
通过URL重组,这是个好办法,可我不会用

可也没想到CSDN上的高手也只是点到为止!

我想也只好潜心修练(再去买几本书先),当我搞定具体实现时,再给个实例出来!
wellsoon 2003-08-21
  • 打赏
  • 举报
回复

去买一本oreilly的《Java与XSLT》(中文版),


里面有讲怎样判断客户端是否支持cookie,

已经怎样自动在URL后面加上sessionid的。

我看过,但是没有实际操作过,

现在书也不在身边了,

你可以去买来看看里面是怎么具体实现的。

http://www.oreilly.com.cn/catalog/javaandXSLT/index.htm
lijunisbug 2003-08-20
  • 打赏
  • 举报
回复
encodeUrl("xxx.jsp");

最好不用cookie,因为我已经成功cookie欺骗了很多系统了
:/
pmaster 2003-08-20
  • 打赏
  • 举报
回复
你用PHP的方式吧!
sunthing 2003-08-20
  • 打赏
  • 举报
回复
大家不再帮我,看来我有鱿鱼吃了!
javahui 2003-08-19
  • 打赏
  • 举报
回复
严重同意 transist(风动石)

其实就是在URL后面跟上SESSION ID号,这样不管浏览器是否支持COOKIE,都能判断是同一个SESSION了。
sunthing 2003-08-19
  • 打赏
  • 举报
回复
To transist(风动石)

谢谢你先,
小弟愚昧,能否解释一下原理!
Jeff 2003-08-19
  • 打赏
  • 举报
回复
两种方式:cookie和url改写

如果客户端禁用cookie则使用url改写的方式
sunthing 2003-08-19
  • 打赏
  • 举报
回复
>>另外session 和cookie是二回事。。
确实是两回事,可是一般的Session 就是利用cookie来搞的,
将cookie生命周期设成浏览器关闭失效这种来达到目的的,
如果不信,你可以将cookie的值全部取出来看看(当浏览器没关闭时),

>>只有让他重新登陆
就算他重新登录,也只能看登录后的一个页面,这样的话session就失去了它的意义了

在PHP中,可以在URL中将session及sessionID作为一个参数值对带着跑这样来解决,jsp中应该也有好的解决方法吧!
transist 2003-08-19
  • 打赏
  • 举报
回复
进行url重写

对于sendRedirect:
response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + uri)

对于forward:
RequestDispatcher rd = getServletContext().getRequestDispatcher(response.encodeURL(uri));
rd.forward(request, response);


kjeny2002 2003-08-19
  • 打赏
  • 举报
回复
如果客户端关闭了cookie
当然不能识别客户端

只有让他重新登陆

另外session 和cookie是二回事。。
session的生命周期是随浏览器的。当浏览器关闭时。。SESSION也就没有了。

但COOKIE是保存在你自己的硬盘上的。。可以设置COOKIE的生命周期。。
gboy2003 2003-08-19
  • 打赏
  • 举报
回复
up
sunthing 2003-08-19
  • 打赏
  • 举报
回复
大家帮帮我吧,我还没有解决呢!
sunthing 2003-08-19
  • 打赏
  • 举报
回复
如果链接的方式呢?怎样把它传到下一个页面?
我要copy 这个response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + uri)到网页的什么位置?
我放在第一行出现错误:
Generated servlet error:
[javac] Since fork is true, ignoring compiler setting.
[javac] Compiling 1 source file
[javac] Since fork is true, ignoring compiler setting.
[javac] G:\tomcat4\work\Apache\www.amway.com\_\carts_jsp.java:55: cannot resolve symbol
[javac] symbol : variable uri
[javac] location: class org.apache.jsp.carts_jsp
[javac] response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + uri));
[javac] ^
[javac] 1 error
真的急呀,已经冒汗了呀!
seaman0916 2003-08-19
  • 打赏
  • 举报
回复
同意上面的意见!

session 和cookie不是一回事!
session的生命周期是随浏览器的,当浏览器关闭时,session也就没有了。当然,我们也可以在生成session时设置session的作用时间!

但cookie是保存在你自己的硬盘上的,可以设置cookie的生命周期,它可以在客户端打开或关闭.

而且两者访问方式也不一样的!

sunthing 2003-08-19
  • 打赏
  • 举报
回复
我要再看看!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧