【Java开源代码栏目提醒】:网学会员为需要Java开源代码的朋友们搜集整理了XWebClient.java相关资料,希望对各位网友有所帮助!
import java.io.*;
import java.net.*;
import javax.swing.*;
import javax.swing.event.*;
import net.jxta.pipe.*;
import net.jxta.impl.endpoint.*;
public class XWebClient
implements PipeMsgListener,HyperlinkListener
{
P2PSocket pps = new P2PSocket();
BaseMessage bm = new BaseMessage();
JEditorPane pane = new JEditorPane();
JFrame jf = new JFrame();
public XWebClient()
{
pps.setInputPipeName("002s");
pps.setInListener(this);
pps.bind();
pps.setOutputPipeName("001s");
pps.setOutListener(pps);
pps.connect();
pane.addHypelinkListener(this);
pane.setEditable(false);
jf.getContentPane().add(pane);
jf.setSize(500,500);
jf.show();
}
public void pipeMsgEvent(PipeMsgEvent event)
{
String temp = null;
MessageImpl mi = (MessageImpl)event.getMessage();
temp = mi.getString(bm.WEB_MESSAGE_TYPE);
if(temp.equals(bm.WEB_CONTENT))
{
doWEBContent(mi);
return;
}
}
public void doWebContent(MessageImpl mi)
{
System.out.println("捕获一个网站内容请求!");
MessageElementImpl mei = (MessageElementImpl)mi.getElement(BaseMessage.WEB_CONTENT);
this.save2File(mei.getStream(),"temp.html");
try
{
String userpath = System.getProperty("user.dir");
pane.setPage("file:///"+userpath);
pane.setPage("file:///"+userpath+"/temp.html");
}catch(Exception e){}
}
public void connectWebFirst()
{
pps.send(bm.newWEBMessage(this.file2Stream("adv/002s.
xml",null,null,bm.WEB_REQUEST_FIRST,"002s");
}
public void save2File(InputStream is,String fname)
{
int length;
byte buf[] = new byte[1024];
try
{
FileOutputStream fos = new FileOutputStream("adv/"+fname);
BufferedOutputStream bos = new BufferedOutputStream(fos);
BufferedInputStream bis = new BufferedInputStream(is);
while((length=bis.read(buf,0,1024))!=-1)
{
bos.write(buf,0,length);
bos.flush();
}
bis.close();
bos.close();
fos.close();
}catch(IOException ioe)
{
System.out.println("写入文件错误:"+ioe);
}
}
public InputStream file2Stream(String file)
{
try
{
FileInputStream fis = new FileInputStream("share/"+file);
return fis;
}catch(IOException ioe)
{
System.out.println("无法读取本地文件");
System.exit(-1);
}
return null;
}
public void hyperlinkUpdate(HyperlinkEvent event)
{
if(event.getEventType()==HyperlinkEvent.EventType.ACTIVATED)
{
try
{
String url = event.getURL().toString();
String userpath = "file:///"+System.getProperty("user.dir");
String temp = url.substring(userpath.length()-1);
pps.send(bm.newWEBMessage(null,null,null,bm.WEB_REQUEST,temp));
}catch(Exception e)
{
System.exit(-1);
}
}
}
public static void main(String args[])
{
XWebClient xf = new XWebClient();
xf.connectWebFirst();
}
};