思考了楼上几位发言,我想我是有些明白了,又做了个实验,进一步证明了我的想法,我最初的结论有两点错误:一是认为Tomcat与客户端浏览器传递Session id时没有用到Cookie,一是认为我禁用了浏览器的Cookie,浏览器就不使用Cookie了。
我找了一个Winsock Expert的软件来监测IE 浏览器发送和接收的信息,IE的版本为6.0,Tomcat的版本为5.0.19,结果如下:当IE浏览器向Tomcat第一次发出请求时,这时候的Http请求内容如下:

不包含任何Cookie信息,当然这是第一次访问这个站点。为了比对Cookie的内容,我在访问的index.jsp页面中使用了response.setCookie向响应放了一个名为newCookie的Cookie。
最后监测的结果如下,除了用户自定义的newCookie之外,还有一个名为JSESSIONID的Cookie被加入了响应。

在接下来的请求中,都包含了JSESSIONID这个Cookie,在请求内容中能清楚的看到这一点:

但是,如果用request.getCookies是无法看到JSESSIONID这个Cookie的,只能看到我自定义的那个newCookie,JSESSIONID这个Cookie被Tomcat隐藏起来了,对于编程人员来说,是不可见的(我无法使用${cookie.JSESSIONID.name}或是${cookie.JSESSIONID.value}来检查它的名称和值,虽然这些对我来说都是已知的)。
第一个错误的解释就差不多这样了,下面看第二个错误的解释。刚才忘记了提到一点:就是我做这些实验的时候浏览器的Cookie设置都是为拒绝的。(如果设置为提示,也根本看不到提示信息,但我如果在Internet环境下访问某些网站,会有对话框提示是否使用该网站的Cookie)
JSESSIONID这个Cookie是浏览器一关闭就失效了的,我想应该是IE来在内存中管理(缓存了)这些JSESSEIONID,它不会存储在本地硬盘上,然而如果我为我的自定义的那个newCookie设置了maxAge,那么浏览器缓存里会记录newCookie的信息。
这是为什么呢?我已经禁用了Cookie呀!我察看了Windows的帮助文档,里面有这样一句话:“隐私设置仅适用于 Internet 区域中的网站”,也就是说,禁不禁用Cookie在本机环境是没有影响的?!
为了测试Internet环境下的Cookie,我又借助了jdon网站,呵呵。我先将Cookie清空,再将Cookie设置为提示,于是有了以下结果:

这里用户可以进行选择。当然如果Cookie设置都是为拒绝的,就看不到这个对话框了,每次请求的JSESSIONID都会不一样,导致的结果就是,无法发新贴等等。