2012-02-18 35 views
0

我已阅读关于会话对象和cookie的信息。 会话对象在服务器端进行维护。 Cookie是由浏览器根据请求维护客户端并发送到服务器的东西。 我有些疑惑,我仍然无法澄清的是会话对象,Java servlets中的cookie vs ASP .NET

1.)在ASP .NET会话可以通过cookie进行跟踪。在配置文件中使用类似下面的内容

<configuration> 
    <sessionstate 
     mode="inproc" 
     cookieless="false" 
     timeout="20" 
     sqlconnectionstring="data source=127.0.0.1;user id=<user id>;password=<password>" 
     server="127.0.0.1" 
     port="42424" 
    /> 
</configuration> 

什么是上面的等效Java servlet配置,它在哪里配置?

2)在Java的情况下,cookiefull状态跟踪启用那么我们是否仍然需要编写代码 拔出从请求中的cookie,并用它获取会话对象的详细信息, 或者是这个由J2EE内部完成框架,即J2EE框架可以看到cookie并自动将相应的会话对象分配给页面请求?

回答

1

Java EE容器默认会话管理正在使用cookie(尽管它支持其他方法,如URL重写)。

没有必要 - 你不应该自己管理会话cookie,因为容器会为你做这些事情。它公开了一个表示当前用户会话的HttpSession实例:如果您希望特定对象在请求之间持续存在,您可以将其存储为属性,并在稍后访问该HttpSession对象时恢复。没有必要写出与cookie相关的代码。

+0

这几乎是我需要的信息,谢谢! – seahorse 2012-02-18 16:41:05

2

ASP.NET和J2EE在J2EE只是企业Java应用程序的规范这一意义上是不同的,并且它缺少实际的实现。 J2EE有很多实现,这里有一个列表:http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition#Certified_application_servers

如果你看HttpServletRequest界面,你会发现getSession()方法,它在那里说,返回HttpSession

服务器可维持在很多方面会如使用cookie 或改写网址

不同的服务器可以用不同的方式处理这个问题。您需要为特定服务器找到您的答案,即:Supporting Sessions Without Cookies in Tomcat