A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gerenvip 中级黑马   /  2013-4-25 16:17  /  1489 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 gerenvip 于 2013-4-25 16:18 编辑

在毕老师的24天视频中,有一个在gui图形界面中实现浏览器功能的示例中,通过简单移植,实现获取网页。
但是我自己试验时总是获取不到网页,而获取到的内容为:
“<html><head><title>Apache Tomcat/6.0.36 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 404 - /myweb/demo.htmlHTTP/1.1</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>/myweb/demo.htmlHTTP/1.1</u></p><p><b>description</b> <u>The requested resource is not available.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.36</h3></body></html>”
而不是网页的内容。请高手帮忙解答一下。下边是移植的代码

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.io.*;
  4. import java.net.*;
  5. class  MyIEByGUI
  6. {
  7.         private Frame f;
  8.         private TextField tf;
  9.         private Button but;
  10.         private TextArea ta;

  11.         private Dialog d;

  12.         private Label lab;
  13.         private Button okbut;

  14.         MyIEByGUI()
  15.         {
  16.                 init();
  17.         }

  18.         public void init()
  19.         {
  20.                 f = new Frame("my window");
  21.                 f.setBounds(300,100,600,500);
  22.                 f.setLayout(new FlowLayout());

  23.                 tf=new TextField(60);
  24.                 but = new Button("转到");
  25.                 ta = new TextArea(20,70);//行 列

  26.                 d= new Dialog(f,"提示信息-self",true); //为true,弹窗不取消掉,没法操作,
  27.                                                                                                 //false时,不取消弹窗也可以操作
  28.                 d.setBounds(400,200,400,100);
  29.                 d.setLayout(new FlowLayout());

  30.                 lab = new Label();

  31.                 okbut = new Button("确定");

  32.                 d.add(lab);
  33.                 d.add(okbut);

  34.                 f.add(tf);
  35.                 f.add(but);
  36.                 f.add(ta);

  37.                 myEvent();

  38.                 f.setVisible(true);
  39.         }

  40.         private void myEvent()
  41.         {
  42.                 okbut.addActionListener(new ActionListener()
  43.                 {
  44.                         public void actionPerformed(ActionEvent e)
  45.                         {
  46.                                 d.setVisible(false);
  47.                         }
  48.                 });

  49.                 d.addWindowListener(new WindowAdapter()
  50.                 {
  51.                         public void windowClosing(WindowEvent e)
  52.                         {
  53.                                 d.setVisible(false);
  54.                         }
  55.                 });

  56.                 //实现enter代替按钮功能。
  57.                 tf.addKeyListener(new KeyAdapter()
  58.                 {
  59.                         public void keyPressed(KeyEvent e)
  60.                         {        
  61.                                 try
  62.                                 {
  63.                                         if(e.getKeyCode()==KeyEvent.VK_ENTER)
  64.                                                 showDir();        
  65.                                 }
  66.                                 catch (Exception el)
  67.                                 {
  68.                                 }
  69.                                                                
  70.                         }
  71.                 });

  72.                 but.addActionListener(new ActionListener()
  73.                 {
  74.                         public void actionPerformed(ActionEvent e)
  75.                         {        
  76.                                 try
  77.                                 {
  78.                                         showDir();
  79.                                 }
  80.                                 catch (Exception ex)
  81.                                 {
  82.                                 }
  83.                                 
  84.                         }
  85.                 });
  86.                 f.addWindowListener(new WindowAdapter()
  87.                 {
  88.                         public void windowClosing(WindowEvent e)
  89.                         {
  90.                                 System.exit(0);
  91.                         }
  92.                 });
  93.         }

  94.         public void  showDir() throws Exception
  95.         {
  96.                 ta.setText("");

  97.                 String url = tf.getText();//http://192.168.0.100:8080/myweb/demo.html

  98.                 int index1 = url.indexOf("//")+2;
  99.                 int index2 = url.indexOf("/",index1);

  100.                 String str = url.substring(index1,index2);
  101.                 String[] arr = str.split(":");
  102.                 String host = arr[0];
  103.                 int port = Integer.parseInt(arr[1]);

  104.                 String path = url.substring(index2);
  105.                 //ta.setText(str+"..."+path);

  106.                 Socket s = new Socket(host,port);

  107.                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);
  108.                 out.println("GET "+path+"HTTP/1.1");
  109.                 out.println("Accept: */*");
  110.                 out.println("Accept-Language: zh-CN");
  111.                 out.println("Host: 192.168.0.100:11000");
  112.                 out.println("Host: 192.168.0.100:11000");
  113.                 out.println("Connection: closed");

  114.                 out.println();
  115.                 out.println();

  116.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(s.getInputStream()));

  117.                 String line = null;
  118.                 while((line = bufr.readLine())!=null)
  119.                 {
  120.                         //System.out.println(line);
  121.                         ta.append(line+"\r\n");
  122.                 }
  123.                 s.close();

  124.         }
  125.         public static void main(String[] args)
  126.         {
  127.                 new MyIEByGUI();
  128.         }
  129. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

1 个回复

倒序浏览
你的Tomcat服务器web目录有 /myweb/demo.htm文件不,404错误是说没有找到这个文件

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马