本帖最后由 赵燕燕 于 2011-12-14 15:32 编辑
/*
演示图形化浏览器
客户端:自定义图形化浏览器
服务器:Tomcat服务器
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
class MyIEByGUI
{
private Frame f;
private TextField tf;
private Button b;
private TextArea ta;
MyIEByGUI()
{
init();
}
private void init()
{
f=new Frame("客户端浏览器");
tf=new TextField(50);
b=new Button("转到");
ta=new TextArea(25,60);
//ta.setEditable(true);
f.setBounds(300,200,500,600);
f.setLayout(new FlowLayout());
f.add(tf);
f.add(b);
f.add(ta);
myEvent();
f.setVisible(true);
}
private void myEvent()
{
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
showDir();
}
catch(Exception ee)
{
System.out.println("请求失败");
}
}
});
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
f.setVisible(false);
}
});
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
try
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
showDir();
}
catch(Exception ee)
{
System.out.println("请求失败");
}
}
});
}
private void showDir()throws Exception
{
ta.setText("");
//需要获取IP 端口号 资源
String text=tf.getText();
//System.out.println(text);
int index1=text.indexOf("//")+2;
//System.out.println("index1"+index1);
int index2=text.indexOf("/",index1);
//System.out.println("index2"+index2);
String str=text.substring(index1,index2);
String[] arr=str.split(":");
//System.out.println("333333333333");
String ip=arr[0];
int port=Integer.parseInt(arr[1]);
String path=text.substring(index2);
//System.out.println("22222222222222");
Socket s=new Socket(ip,port);
PrintWriter out=new PrintWriter(s.getOutputStream(),true);
out.println("GET "+path+" HTTP/1.1"); //必须有,告诉服务器我要请求的数据是什么。
//out.println("Host: "+ip+":"+port);
out.println("Connection: keep-alive");
out.println("Accept: */*");
out.println("Accept-Language: zh-CN,zh;q=0.8");
//System.out.println("33333333333333");
out.println();//必须有,用来区分 数据头 和 数据体
BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream()));
String data=null;
while((data=in.readLine())!=null)
{
ta.append(data+"\r\n");
}
s.close();
}
public static void main(String[] args)
{
new MyIEByGUI();
}
}
//大家帮忙找一下错误,我运行出的结果读取不到网页。运行结果如下:
在Tomcat服务器中建的网站是没有问题的,用搜狗浏览器能正确访问到数据。
|