📄 101.html
字号:
<STYLE type=text/css>
<!--
body,td { font-size:9pt;}
hr { color: #000000; height: 1px}
-->
</STYLE>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD><TITLE>精选文章 >> 深入研究 >> JAVA的网络功能与编程 二</title>
</head>
<body >
<p><IMG SRC="../image/jsp001_middle_logo.gif" WIDTH="180" HEIGHT="60" BORDER=0 ALT=""></p>
<table width=100% bgcolor="#cccccc" align=center cellpadding="2" cellspacing="0" border=1 bordercolorlight="#000000" bordercolordark="#FFFFFF">
<tr bgcolor="#EFF8FF"><td>
<a href=http://www.jsp001.com/list_thread.php?int_attribute=2>精选文章</a>
>> <a href=http://www.jsp001.com/list_thread.php?forumid=18&int_attribute=2>深入研究</a>
>> JAVA的网络功能与编程 二 [<a href=http://www.jsp001.com/forum/showthread.php?goto=newpost&threadid=101>查看别人的评论</a>]<br>
<hr><p>由 webmaster 发布于: 2001-01-21 09:16</p><p> </p><p>五、显示网络上其他HTML文档<br><br><br><br> 利用Java提供的getAppletContext().showDocument(URL)可以<br><br>显示其他结点的HTML文档,同前面的显示网络上其他结点的图象,<br><br>有两种格式,下面各举一例:<br><br> ●程序8 格式一<br><br>import java.applet.*;<br><br>import java.awt.*;<br><br>import java.net.*;<br><br>public class showdoc extends Applet<br><br>{ <br><br> URL docur= null;<br><br> public void paint(Graphics g) {<br><br> try {<br><br> docur=new URL("http://www.shu.edu.cn/~xyx/doc/manhua.html"); <br><br> } <br><br> catch (MalformedURLException e) {<br><br> System.out.println("Can't open the URL ");<br><br> }<br><br> if (docur != null) {<br><br> getAppletContext().showDocument(docur,"_blank");<br><br> } <br><br> }<br><br>}<br><br><br><br> ●程序9 格式二<br><br>import java.applet.*;<br><br>import java.awt.*;<br><br>import java.net.*;<br><br>public class showdoc2 extends Applet<br><br>{ <br><br> URL docur= null;<br><br> public void paint(Graphics g) { <br><br> try {<br><br>getAppletContext().showDocument(new URL("http://www.shu.edu.cn/<br><br>~xyx/doc/manhua.html")); <br><br> } <br><br> catch (MalformedURLException e) {<br><br> System.out.println("Can't open the URL ");<br><br> } <br><br> }<br><br>}<br><br><br><br> 六、读取网络上文件内容<br><br><br><br> 前述的网络功能只是显示或播放网络上结点的图象、 声音及<br><br>HTML文档,并没有对其内容进行处理。事实上,Java还可读取网络<br><br>上文件的内容,并对其内容进行处理。<br><br> 读取网络上文件内容的步骤可如下:<br><br> 1. 创建一个URL类型的对象<br><br> 如:<br><br> String url = "ftp://202.120.127.218/incoming/test/readtxt.html";<br><br>URL fileur;<br><br> try { <br><br>fileur = new URL(url); } <br><br> catch ( MalformedURLException e) { <br><br> System.out.println("Can't get URL: " );<br><br> }<br><br> 2. 利用URL类的openStream(),获得对应的InputStream类的对象<br><br> 如:<br><br>InputStream filecon = fileur.openStream();<br><br> 3. 将InputStream对象转化为DataInputStream类的对象<br><br> 如:<br><br> DataInputStream filedata = new DataInputStream(filecon);<br><br> 4. 读取内容<br><br> 如对前面的filedata,可用filedata.readLine() 一行一行读<br><br>取内容,或用filedata.readchar一个字符一个字符读取内容。 对<br><br>读取到的内容,可由Java Applet进行各种处理, 并将处理结果用<br><br>各种方式显示出来。<br><br> 下面的例子是读取 <a href="http://www.shu.edu.cn/~xyx/doc/manhua.html" target=_blank>http://www.shu.edu.cn/~xyx/doc/manhua.html</a><br><br>文件内容的例子,为简洁起见,该例中只将文件的内容逐行读出,<br><br>并在文本区显示出来。<br><br>●程序10<br><br>import java.io.*;<br><br>import java.net.*;<br><br>import java.awt.*;<br><br>import java.applet.*;<br><br>public class showfile extends Applet{<br><br> URL fileur;<br><br> TextArea showarea = new TextArea("Please wait a while for get<br><br>text",10,70);<br><br> public void init() {<br><br> String url = "http://www.shu.edu.cn/~xyx/doc/manhua.html";<br><br> try { fileur = new URL(url); } <br><br> catch ( MalformedURLException e) { <br><br> System.out.println("Can't get URL: " );<br><br> }<br><br> add(showarea);<br><br>}<br><br><br><br> public void paint(Graphics g) {<br><br> InputStream filecon = null;<br><br> DataInputStream filedata = null;<br><br> String fileline;<br><br>try {<br><br> filecon = fileur.openStream();<br><br> filedata = new DataInputStream(filecon);<br><br> while ((fileline = filedata.readLine()) != null) {<br><br> showarea.appendText(fileline+"\n");<br><br>}<br><br>}<br><br>catch (IOException e) {<br><br> System.out.println("Error in I/O:" + e.getMessage());<br><br>}<br><br> }<br><br>}<br><br><br><br> 七、动态使用网络上资源<br><br> 在前面介绍的例子的基础上,可以动态地利用网络上的资源。<br><br>其方法是编制一个线程,每隔一定时间自动到相应结点读取最新的<br><br>内容。本文对线程的编制不再展开,读者可参考有关文章或直接套<br><br>用下面的例子。<br><br> 例如对上例中读取http://www.shu.edu.cn/~xyx/doc/manhua<br><br>.html文件内容的例子,加入线程后如下所示。该例子每隔5秒更新<br><br>一次数据。如果http://www.shu.edu.cn/~xyx/doc/manhua.html中<br><br>存放的是一些变化较快的信息如股市行情等,并有程序随时动态地<br><br>更新其内容,则在Web中加入这种Java Applet,可以让流览者得到<br><br>动态的信息。进一步,也可以在程序中对数据进行处理,并用图形<br><br>方式显示处理结果。例如将各时刻的数据绘制成曲线,流览者可以<br><br>看到动态变化的曲线。<br><br>//程序11<br><br>import java.io.*;<br><br>import java.net.*;<br><br>import java.awt.*;<br><br>import java.applet.*;<br><br>public class dynashow extends java.applet.Applet<br><br> implements Runnable {<br><br> Thread dthread;<br><br> URL fileur;<br><br>TextArea showarea = new TextArea("Wait for a while...",10,70);<br><br> public void init() {<br><br> String url = " <a href="http://www.shu.edu.cn/~xyx/doc/manhua.html" target=_blank>http://www.shu.edu.cn/~xyx/doc/manhua.html</a> ";<br><br> try { fileur = new URL(url); } <br><br> catch ( MalformedURLException e) { <br><br> System.out.println("Can't get URL: " );<br><br> }<br><br> add(showarea);<br><br> }<br><br><br><br> public void start() {<br><br> if (dthread == null) <br><br> {<br><br> dthread = new Thread(this);<br><br> dthread.start();<br><br> }<br><br> }<br><br> public void stop() {<br><br> if (dthread != null) {<br><br> dthread.stop();<br><br> dthread = null;<br><br> }<br><br> }<br><br><br><br> public void run() {<br><br> InputStream filecon = null;<br><br> DataInputStream filedata = null;<br><br> String fileline;<br><br> while(true){<br><br> try {<br><br> filecon = fileur.openStream();<br><br> filedata = new DataInputStream(filecon);<br><br> while ((fileline = filedata.readLine()) != null) {<br><br> showarea.appendText(fileline+"\n");<br><br> }<br><br> }<br><br> catch (IOException e) {<br><br> System.out.println("Error in I/O:" + e.getMessage());<br><br> }<br><br> try{<br><br> dthread.sleep(5000);<br><br> }<br><br> catch (InterruptedException e){}<br><br> repaint();<br><br> }<br><br> }<br><br>}<br><br><br><br> 八、Java网络能力的限制<br><br><br><br> 出于安全性考虑,在用netscape浏览时,Java Applet 只能和<br><br>其所在的主机建立连接,因此,前面的程序编译后大部分只能存放<br><br>在http://www.shu.edu.cn/~xyx对应的主机上。存放到其他主机时<br><br>需更改程序中的结点地址。否则浏览器将显示安全出错。<br><br> 但对显示网络上其他HTML文档没有此限制(如程序8、9),读<br><br>者可以将程序编译后放到任意WWW服务器或FTP服务器,均可正常运<br><br>行。<br><br> 此外,当浏览器从本地盘打开调用Java Applet的HTML文档时,<br><br>也不受此限制。因此,本文所有的程序都可存放在本地盘编译,只<br><br>要用netscape的File/Open File菜单打开,便可正确运行。<br><br> 对于另一种Java程序--Java Application,也无此限制,例<br><br>如对于读取网络上文件内容的程序10,对应的Java Application可<br><br>作如下编程:<br><br><br><br>●程序11<br><br>import java.io.*;<br><br>import java.net.*;<br><br>import java.awt.*;<br><br>class showfile2 {<br><br> public static void main(String args[]){<br><br> InputStream filecon = null;<br><br> DataInputStream filedata = null;<br><br> String fileline;<br><br> String url = "http://www.shu.edu.cn/~xyx/doc/manhua.html";<br><br> URL fileur;<br><br> try {<br><br> fileur = new URL(url);<br><br> filecon = fileur.openStream();<br><br> filedata = new DataInputStream(filecon);<br><br> while ((fileline = filedata.readLine()) != null) {<br><br>System.out.println(fileline+"\n");<br><br>}<br><br>}<br><br>catch (IOException e) {<br><br> System.out.println("Error in I/O:" + e.getMessage());<br><br>}<br><br> }<br><br>}<br><br> 将其以showfile2.java存盘,用javac showfile2.java编译后,<br><br>只需执行“java showfile2”便可以在屏幕上打印出<br><br><a href="http://www.shu.edu.cn/~xyx/doc/manhua.html" target=_blank>http://www.shu.edu.cn/~xyx/doc/manhua.html</a> 文件的内容。<br><br><br><br> 九、创建URL对象的方法<br><br><br><br> 在前面的例子中我们统一使用new URL(url字符串)的形式创建<br><br>URL对象。其实,Java提供了四种创建URL对象的形式:<br><br> 1.new URL(url字符串) 本文中的程序均采用此种格式,如:<br><br>new URL("http://www.shu.edu.cn/~xyx/doc/manhua.html")<br><br> 2.new URL(协议,主机名,文件名或路径) 如程序2中的<br><br>String url = "http://www.shu.edu.cn/~xyx/img/shnet.jpg";<br><br>image = getImage(new URL(url));部分可改为:<br><br>image = getImage(new URL("http","www.shu.edu.cn","/~xyx /img/shnet.jpg"));<br><br> 3.new URL(协议,主机名,端口号,文件名或路径)1<br><br>如:new URL("http","www.shu.edu.cn",80, "/~xyx/doc/manhua.html")<br><br> 4.new URL(基准url,文件名或路径)<br><br><br><br> 十、实现网络功能的其他方法<br><br><br><br> 以上着重介绍了利用Java的URL类实现从网络上获取声音、 图<br><br>象、HTML文档及文件数据的编程方法。Java的网络功能很强大,除<br><br>上面介绍的外,还可以利用URLconnection 类实现更广泛的网络功<br><br>能,如向WWW 服务器上的 CGI 程序发送信息等; 通过 Socket 及<br><br>ServerSocket类,可以自己编写客户软件及服务软件,并可以自己<br><br>设计通讯协议。<br><br><br><br>〖参考文献〗<br><br>Laura Lemay,Charles L. Perkins "Teach Yourself JAVA in 21 Days" <br><br>摘自《Internet世界》<br></p></td>
</tr>
</table>
<p>
<CENTER><a href="http://www.jsp001.com/forum/newreply.php?action=newreply&threadid=101">点这里对该文章发表评论</a></CENTER>
<p>该文章总得分是 <font color=red>6</font> 分,你认为它对你有帮助吗?
[<a href=javascript:void(0) onclick=window.open("http://www.jsp001.com/forum/codeVote.php?threadid=101&intVote=4","","menubar=no,toolbar=no,location=no,directories=no,status=no,resizable=no,scrollbars=no,width=70,height=40,top=0,left=0")>非常多</a>](<font color=red>1</font>)
[<a href=javascript:void(0) onclick=window.open("http://www.jsp001.com/forum/codeVote.php?threadid=101&intVote=2","","menubar=no,toolbar=no,location=no,directories=no,status=no,resizable=no,scrollbars=no,width=70,height=40,top=0,left=0")>有一些</a>](<font color=red>1</font>)
[<a href=javascript:void(0) onclick=window.open("http://www.jsp001.com/forum/codeVote.php?threadid=101&intVote=1","","menubar=no,toolbar=no,location=no,directories=no,status=no,resizable=no,scrollbars=no,width=70,height=40,top=0,left=0")>无帮助</a>](<font color=red>1</font>)
[<a href=javascript:void(0) onclick=window.open("http://www.jsp001.com/forum/codeVote.php?threadid=101&intVote=-1","","menubar=no,toolbar=no,location=no,directories=no,status=no,resizable=no,scrollbars=no,width=70,height=40,top=0,left=0")>是灌水</a>](<font color=red>1</font>) </p>
<script language="javascript" src="http://www.jsp001.com/include/read_thread_script.php?threadid=101"></script>
<p><CENTER>
Copyright © 2001 - 2009 JSP001.com . All Rights Reserved <P>
<IMG SRC="../image/jsp001_small_logo.gif" WIDTH="85" HEIGHT="30" BORDER=0 ALT="">
</CENTER></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -