JSP服务器什么时候将cookie发送给客户端?一次请求中在一个组件中创建了Cookie,在另外一个组件中能接收到值么?
2014-10-17 10:32
573 查看
答:不能 !
如果一个组件创建了Cookie,然后 转发 给了另外一个servlet 或 JSP 或 其它组件,那么该 转发后的地方获取不到刚刚定义的Cookie,因为转发共享数据,在本web应用内完成,共享同一个request和response,当web应用内一个组件创建了一个Cookie,并绑定到response上时,这个时候进行了转发 操作,这个时候服务器并没有将Cookie提交给客户端, 而是提交将该cookie随着response转交给了下一个组件 ,这个时候如果通过request.getCookies获取Cookie是
获取不到的,因为服务器还没有将cookie提交给客户端 这个时候的request更是用户初始的请求,没有绑定任何相关的cookie。
而如果是重定向就可以,因为重定向是两次请求,在重定向过程中已经将cookie提交给客户端,第二次发过来请求的时候,可以通过第二次的request获取到cookie。
这个也从另外一个角度说明了是当response销毁时才将 cookie发送给客户端。
如果一个组件创建了Cookie,然后 转发 给了另外一个servlet 或 JSP 或 其它组件,那么该 转发后的地方获取不到刚刚定义的Cookie,因为转发共享数据,在本web应用内完成,共享同一个request和response,当web应用内一个组件创建了一个Cookie,并绑定到response上时,这个时候进行了转发 操作,这个时候服务器并没有将Cookie提交给客户端, 而是提交将该cookie随着response转交给了下一个组件 ,这个时候如果通过request.getCookies获取Cookie是
获取不到的,因为服务器还没有将cookie提交给客户端 这个时候的request更是用户初始的请求,没有绑定任何相关的cookie。
而如果是重定向就可以,因为重定向是两次请求,在重定向过程中已经将cookie提交给客户端,第二次发过来请求的时候,可以通过第二次的request获取到cookie。
这个也从另外一个角度说明了是当response销毁时才将 cookie发送给客户端。
相关文章推荐
- 10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
- 学习使用dwr 中的push技术 服务器发送一个广播,让每一个客户端都能接收到这个广播。
- Java编写一个简单的TCP通信程序。服务器发送一条字符串,客户端接收该信息并显示。
- “黑马程序员”使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印
- 学习使用dwr 中的push技术 服务器发送一个广播,让每一个客户端都能接收到这个广播。
- 黑马程序员——使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
- 一个Servlet同一时刻只有一个实例。 当多个请求发送到同一个Servlet,服务器会为每个请求创建一个新线程来处理。
- Photon Server游戏服务器从零开始学习(三)在Unity3D中创建客户端与服务器连接及发送请求
- session过期,使用Ajax每隔一段时间向服务器发送一次请求,来防止session过期
- 如何在WebService接收一个XML文件并解析,客户端如何发送这个XML文件?急求简单代码示例。。
- 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。)
- 局域网聊天工具(多线程),支持客户端与客户端间通信,服务器负责信息的接收与发送(client)
- Java客户端通过Http发送POST请求上传文件到web服务器
- 一个发送xml远程请求和接收xml请求结果并置入DataSet的方法
- 一个Ajax请求如何向服务器发送XML
- 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。) ---> System.Data.SqlClient.Sql
- Android network:主线程将创建请求放入(请求)队列,处理线程每次取一个请求,进行处理(发送/读响应)
- Ajax入门 第3部分 使用XML向服务器发送请求和从服务器接收 XML
- Android Training - 和其他程序交互(1) - 发送用户请求给另外一个程序
- ext异步请求一个aspx/ashx/web service取得数据,服务端返回一个json.然后客户端接收并显示.