运行Java小程序时,JVM将哪些cookie发送到服务器?

时间:2009-09-30 17:41:22

标签: java cookies applet

在我的网络服务器上,我有一个包含applet标签的HTML文件:

<html>
  <head/>
  <body>
    <applet code="Hello.class" width="100" height="100" />
  </body>
</html>

我在与HTML文件相同的目录中有一个名为Hello.class的Java类文件。

这两个文件都在Web服务器(IIS 6)上运行,其主机名如下所示:

bart.simpson.springfield.com

我的浏览器中有两个Cookie:

  • CookieA - Scoped to springfield.com
  • CookieB - Scoped to simpson.springfield.com

当从服务器请求HTML文件时,Fiddler会显示上述两个cookie都与请求一起发送。

当从服务器请求Java类文件时,Fiddler显示只发送了CookieA(作用于springfield.com)。

我需要将两个 Cookie发送到服务器。有没有办法做到这一点?

我看到这种行为是Firefox 3.5.2和IE 7。

我试图找到关于发送哪些cookie的规范,但自Java 1.3以来没有发现任何内容。

谢谢!

2 个答案:

答案 0 :(得分:3)

客户端Java插件始终会咨询浏览器以验证是否需要在请求中发送cookie。有关Java插件中cookie支持的详细信息,请参见Java deployment guide

有一种情况,即不会发送cookie,也就是说Web服务器在cookie上设置了HttpOnly标志。在这种情况下,applet类的HTTP请求将不包含cookie头,因为Java插件将无法访问cookie。

答案 1 :(得分:0)

HTML文件的cookie由浏览器本身发送,但applet类文件的cookie由Java Plugin发送。所以他们经常不同。

对于浏览器,它使用的唯一规则是域名。插件必须将事物作为安全策略和代码库。有关详细信息,请参阅此文档

http://java.sun.com/products/plugin/1.3/docs/cookie.html

applet的代码库是什么?