我已经阅读过会话对象和cookie。 会话对象在服务器端维护。 Cookie是维护客户端并通过浏览器按请求发送到服务器的东西。 我有一些疑问,我仍然无法澄清是
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并自动将相应的会话对象分配给页面请求?
答案 0 :(得分: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。
答案 1 :(得分:1)
Java EE Containers默认会话管理正在使用cookie(尽管它支持其他方法,如URL重写)。
没有必要 - 你不应该 - 自己管理会话cookie,因为容器会为你做所有这些事情。它公开了一个代表当前用户会话的HttpSession实例:如果您希望特定对象在请求之间保持不变,您可以将其作为属性存储在此处,并在以后恢复访问该HttpSession对象。无需编写与cookie相关的代码。