第11章 Java中的网络编程.doc
《第11章 Java中的网络编程.doc》由会员分享,可在线阅读,更多相关《第11章 Java中的网络编程.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第11章 Java中的网络编程实验1 显示网页中特定的超链接2模板代码 URLExample.javaimport javax.swing.*;import java.awt.*;import java.awt.event.*;import .*;import java.io.*;import java.util.regex.*;import javax.swing.event.*;class Win extends JFrame implements ActionListener, Runnable JButton button;URL url, newURL;JTextField text
2、;JEditorPane editPane;byte b = new byte118;Thread thread;Container con = null;JPanel p;public Win() text = new JTextField(20);editPane = new JEditorPane(); / 创建editPaneeditPane.setEditable(false); / editPane设置为不可编辑状态button = new JButton(确定);button.addActionListener(this);thread = new Thread(this);p
3、= new JPanel();p.add(new JLabel(输入网址:);p.add(text);p.add(button);con = getContentPane();con.add(new JScrollPane(editPane), BorderLayout.CENTER);con.add(p, BorderLayout.NORTH);setBounds(60, 60, 450, 300);setVisible(true);validate();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void actionPerf
4、ormed(ActionEvent e) if (!(thread.isAlive()thread = new Thread(this);try thread.start(); catch (Exception ee) text.setText(我正在读取 + url);public void run() try int m = -1;editPane.setText(null);url = new URL(text.getSelectedText(); / 使用构造方法URL(String s)创建url,其中参数s由text中的文本指定InputStream in = url.openSt
5、ream(); / url返回输入流File file = new File(temp.html);ByteArrayOutputStream write = new ByteArrayOutputStream();while (m = in.read(b) != -1) write.write(b, 0, m);write.close();in.close();byte content = write.toByteArray();String str = new String(content);Pattern pattern;Matcher match;pattern = Ppile(*.育
6、.*,Pattern.CASE_INSENSITIVE);match = pattern.matcher(str);FileOutputStream out = new FileOutputStream(file);while (match.find() String strHREF = match.group();strHREF = + strHREF;out.write(strHREF.getBytes();out.close();newURL = file.toURL();con.removeAll();editPane = new JEditorPane(); / 创建editPane
7、editPane.setEditable(false); / editPane设置为不可编辑状态editPane.setPage(newURL); / editPane显示newURLcon.add(p, BorderLayout.NORTH);con.add(new JScrollPane(editPane), BorderLayout.CENTER);con.validate();validate();editPane.addHyperlinkListener(new HyperlinkListener() public void hyperlinkUpdate(HyperlinkEven
8、t e) if (e.getEventType() = HyperlinkEvent.EventType.ACTIVATED) try URL linkURL = e.getURL();editPane.setPage(linkURL); / editPane显示linkURL catch (IOException e1) editPane.setText( + e1);); catch (MalformedURLException e1) text.setText( + e1);return; catch (IOException e1) text.setText( + e1);return
9、;public class URLExample public static void main(String args) new Win();实验2 过滤网页中的内容2模板代码 Example.javaimport javax.swing.*;import java.awt.*;import java.awt.event.*;import .*;import java.io.*;import java.util.regex.*;import javax.swing.event.*;class Win extends JFrame implements ActionListener,Runna
10、ble JButton button; URL url, newURL; JTextField text; JEditorPane editPane; byte b=new byte118; Thread thread; Container con=null; JPanel p; public Win() text=new JTextField(20); editPane=new JEditorPane(); / 创建editPane editPane.setEditable(false); / editPane设置为不可编辑状态 button=new JButton(确定); button.
11、addActionListener(this); thread=new Thread(this); p=new JPanel(); p.add(new JLabel(输入网址:); p.add(text); p.add(button); con=getContentPane(); con.add(new JScrollPane(editPane),BorderLayout.CENTER); con.add(p,BorderLayout.NORTH); setBounds(60,60,460,380); setVisible(true); validate(); setDefaultCloseO
12、peration(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEvent e) if(!(thread.isAlive() thread=new Thread(this); try thread.start(); catch(Exception ee) text.setText(我正在读取+url); public void run() try int m=-1; editPane.setText(null); url= new URL(text.getSelectedText();/ 使用构造方法URL(String s)
13、创建url,其中参数s由text中的文本指定 InputStream in=url.openStream(); / url返回输入流 File file=new File(temp.html); ByteArrayOutputStream write=new ByteArrayOutputStream (); while(m=in.read(b)!=-1) write.write(b,0,m); write.close(); in.close(); byte content=write.toByteArray(); String str=new String(content); Pattern
14、 pattern; Matcher match; pattern=Ppile(,Pattern .CASE_INSENSITIVE); match=pattern.matcher(str); str=match.replaceAll(); byte cc=str.getBytes(); ByteArrayInputStream inByte=new ByteArrayInputStream(cc); FileOutputStream out=new FileOutputStream(file); byte dd=new byte1024; while(m=inByte.read(dd,0,10
15、24)!=-1) out.write(dd,0,m); out.close(); inByte.close(); newURL=file.toURL(); con.removeAll(); editPane=new JEditorPane();/ 创建editPane editPane.setEditable(false); / editPane设置为不可编辑状态 editPane.setPage(newURL);/ editPane显示newURL editPane.addHyperlinkListener(new HyperlinkListener() public void hyperl
16、inkUpdate(HyperlinkEvent e) if(e.getEventType()=HyperlinkEvent.EventType.ACTIVATED) try URL linkURL=e.getURL(); editPane.setPage(linkURL);/ editPane显示linkURL catch(IOException e1) editPane.setText(+e1); ); con.add(p,BorderLayout.NORTH); con.add(new JScrollPane(editPane),BorderLayout.CENTER); con.val
17、idate(); validate(); catch(MalformedURLException e1) text.setText(+e1); return; catch(IOException e1) text.setText(+e1); return; public class Example public static void main(String args) new Win(); 实验3 使用套接字传输数据2模板代码 客户端模板:Client.javaimport .*;import java.io.*;import java.awt.*;import java.awt.event
18、.*;import javax.swing.*;class Client extends JFrame implements Runnable, ActionListener JButton connection, computer;JTextField inputA, inputB, inputC;JTextArea showResult;Socket socket = null;DataInputStream in = null;DataOutputStream out = null;Thread thread;public Client() socket = new Socket();c
19、onnection = new JButton(连接服务器);computer = new JButton(求三角形面积);computer.setEnabled(false);inputA = new JTextField(0, 12);inputB = new JTextField(0, 12);inputC = new JTextField(0, 12);Box boxV1 = Box.createVerticalBox();boxV1.add(new JLabel(输入边A);boxV1.add(new JLabel(输入边B);boxV1.add(new JLabel(输入边C);B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第11章 Java中的网络编程 11 Java 中的 网络 编程
限制150内