不知道我有没有理解正确楼主的思路,我只说说我的想法:对于Servlet,显然是运行在服务器端的一段代码,会同时处理多个来自不同session的request,当用户第一次发送request到达这个Servlet时,这个Servlet会产生一个cookie然后根据请求所在的session往response中添加cookie,然后在request中寻找已有cookie的影子。这个时候cookie还没有被返回到客户端,自然由客户端发出的这次request也不会包含cookie的信息,当然就找不到,Servlet处理完这些就把response打包发送回客户端。刷新页面的时候,客户端会重新发出request,这时的request就会包含跟这个服务器相关的cookie信息,当然就会找到了。粗略总结一下流程:1、客户端发送request // 同时发送与这个服务器相关的cookies
2、服务器端Servlet处理request,返回response // 作为整体
3、客户端接收response并作相应处理 // 如显示结果、添加cookie等。其中第二步具体是这样的:
视客户端的请求类型,Servlet的doGet或者doPost被调用,相应的方法中的代码执行完成后response作为整体返回到客户端。