我知道像Python这样的脚本语言这是可能的,但我知道Java applet无法访问除自己以外的其他服务器。
我不知道/我认为我可以让这个applet签名。有没有办法使用PHP来完成我想要完成的任务?
我也知道此代码将转到google.com
import java.applet.*;
import java.awt.*;
import java.net.*;
import java.awt.event.*;
public class tesURL extends Applet implements ActionListener{
public void init(){
String link_Text = "google";
Button b = new Button(link_Text);
b.addActionListener(this);
add(b);
}
public void actionPerformed(ActionEvent ae){
//get the button label
Button source = (Button)ae.getSource();
String link = "http://www."+source.getLabel()+".com";
try
{
AppletContext a = getAppletContext();
URL u = new URL(link);
// a.showDocument(u,"_blank");
// _blank to open page in new window
a.showDocument(u,"_self");
}
catch (MalformedURLException e){
System.out.println(e.getMessage());
}
}
}
假设source.getLabel()是“google”
但是我如何获得该页面的源html?
源html是动态的,每隔几秒或几毫秒更新一次。但是,html也会更新,所以我仍然可以直接从html中读取动态内容。我已经在vb.net中做过这个,但现在我需要将它移植到Java,但我无法弄清楚如何访问页面的html源代码;这就是我要问的原因。
答案 0 :(得分:1)
AppletContext.showDocument
在浏览器中打开一个页面,就像HTML中的超链接或JavaScript中的类似调用一样。在同源政策下,如果来自其他网站,即使该网页位于iframe中,您也无权访问该网页。
如果您要直接阅读crossdomain.xml
的内容,某些网站可能会有java.net.URL
个政策文件,允许访问。但是,www.google.com似乎使用的是受限制的表单,我认为Java PlugIn目前不支持该表单。
有人可能会建议您的applet签名,这会关闭Java的“沙盒”安全功能。然后,您需要说服您的用户信任您发布安全签名代码的能力。