我有一个servlet,我希望将该servlet中的一些值传递给applet。
流程就像这样
这是我的小程序代码:
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 获取的网址值
这是我的 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
非常感谢你的帮助。
问候
阿尔伯特。
答案 0 :(得分:0)
解决,
原因是
tomcat 7默认使用HttpOnly会话cookie(这些在Tomcat 5.5和6中可用,但默认情况下是关闭的)。这会导致浏览器中的Java插件出现问题,这些插件无法获取会话ID cookie并将其传递给applet代码。
我在这个链接中找到了答案 Issues with Tomcat 7