我有一个 servlet,我想将一些值从该 servlet 传递到小程序。
流程是这样的
- 调用 servlet 的小程序
- servlet 向 applet 提供了一些值
- 小程序从 servlet 检索值。
这是我的小程序代码:
public void start() {
URL url = new URL(getCodeBase(), getParameter("URL"));
System.out.println("opening url : " + url);
URLConnection con = url.openConnection();
con.setDoInput(true);
DataInputStream obIn = new DataInputStream(con.getInputStream());
System.out.println("dataInputStream : " + obIn);
System.out.println("servlet Values : " + obIn.readInt());
}
从 applet.html 获取的 URL 值
这是我的servlet 代码:
public void service(HttpServletRequest req, HttpServletResponse res) throws IOException,ServletException {
DataOutputStream dos = new DataOutputStream(res.getOutputStream());
dos.writeInt(100);
dos.close();
}
我在java控制台中发现的结果是这样的
dataInputStream : java.io.DataInputStream@9abc69
servlet Values : 1010792557
我已经在 web.xml 中编写了 servlet 名称,如下所示
<servlet-mapping>
<servlet-name>MyApplet</servlet-name>
<url-pattern>/MyApplet</url-pattern>
</servlet-mapping>
这件事让我很紧张,为什么 applet 无法从 servlet 接收值?
我的代码有什么问题吗?或者是我缺少的配置?
现在我使用 Spring、jsf 和 tomcat 7.0.20
非常感谢您的帮助。
问候
阿尔伯特.
最佳答案
解决了,
原因是
tomcat 7 默认使用 HttpOnly session cookie(这些在 Tomcat 5.5 和 6 中可用,但默认情况下处于关闭状态)。这会导致浏览器中的 Java 插件出现问题,该插件无法获取 session ID cookie 并将其传递给小程序代码。
我在此链接中找到了答案 Issues with Tomcat 7
关于java - 通过 dataInputStream 将一些值从 servlet 传递到 applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27479374/