⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 101.html

📁 关于jsp的一些好文章 主要介绍一些关于JSP的应用技巧方面的东西
💻 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 &copy; 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 + -