<< Chapter < Page | Chapter >> Page > |
The program named Java4650a
I will explain this program in fragments. A complete listing of the program is provided in Listing 4 .
The URLConnection class is abstract , and therefore cannot be instantiated directly. However, it can be extended , and it has a protected constructor that requires a URL object as a parameter.
A common way to get a URLConnection object is to call a method on a URL object that returns an object of a subclass of the URLConnection class. That is the case in the sample program for this module.
I will ignore the exception handling code in the discussion of this program.
All of the code in the sample program is contained in the main method of the controlling class.
Beginning of the program
The beginning of the program and the beginning of the main method is shown in Listing 1 .
Listing 1 - Beginning of the program. |
---|
import java.net.*;
import java.io.*;import java.util.*;
class Java4650a{public static void main(String[] args){String dataLine;
try{//Get a URL object
URL url = new URL("http://www.austincc.edu/baldwin/page1.html"); |
Get a URL object
The code at the bottom of Listing 1 instantiates a URL object. This is essentially the same code that you saw in an earlier module, but you need to see it again here in order to understand the code thatfollows it.
URLConnection object
The code in Listing 2 gets a URLConnection object by calling the openConnection method on the URL object instantiated earlier.
Listing 2 - Get a URLConnection object. |
---|
URLConnection urlConnection = url.openConnection(); |
Get information about the URL
The code in Listing 3 calls three methods on the URLConnection object to obtain three of the higher-level informational aspects of the URL:
Listing 3 - Get information about the URL. |
---|
System.out.println(urlConnection.getURL());
Date lastModified = new Date(urlConnection.getLastModified());
System.out.println(lastModified);System.out.println(urlConnection.getContentType()); |
The result of these three inquiries is shown as the first three lines of text in Figure 1 .
The remaining code
Following this, the program uses the URL object to get an input stream and to display the contents of the file. However, this essentially duplicates a portionof the program in an earlier module, so I won't discuss it further here.
I encourage you to copy the code from Listing 4 . Compile the code and execute it. Experiment with the code, making changes, and observing the results of your changes. Make certain that youcan explain why your changes behave as they do.
In the next module, I will show you how to download a simple HTML file and to render it in a way that is similar to how it would be rendered in a browser.
This section contains a variety of miscellaneous information.
Financial : Although the Connexions site makes it possible for you to download a PDF file for thismodule at no charge, and also makes it possible for you to purchase a pre-printed version of the PDF file, you should beaware that some of the HTML elements in this module may not translate well into PDF.
I also want you to know that, I receive no financial compensation from the Connexions website even if you purchase the PDF version of the module.
In the past, unknown individuals have copied my modules from cnx.org, converted them to Kindle books, and placed them for sale on Amazon.com showing me as the author. Ineither receive compensation for those sales nor do I know who does receive compensation. If you purchase such a book, please beaware that it is a copy of a module that is freely available on cnx.org and that it was made and published withoutmy prior knowledge.
Affiliation : I am a professor of Computer Information Technology at Austin Community College in Austin, TX.
Listing 4 - The program named Java4650a.
/*File Java4650a.java Copyright 1998, R.G.Baldwin
Revised 01/05/14Illustrates connecting to a URL and creating a
URLConnection object.Uses the URL object to obtain and display
the URL, the date last modified, and the content type.Also uses the URLConnection object to obtain an
input stream object. Then uses this object to read anddisplay the file.
**********************************************************/import java.net.*;
import java.io.*;import java.util.*;
class Java4650a{public static void main(String[] args){String dataLine;
try{//Get a URL object
URL url = new URL("http://www.austincc.edu/baldwin/page1.html");
//Open a connection to the URL and get a// URLConnection object.
URLConnection urlConnection = url.openConnection();//Use the connection to get and display the URLSystem.out.println(urlConnection.getURL());//Use the connection to get and display the date last
// modified.Date lastModified = new Date(
urlConnection.getLastModified());System.out.println(lastModified);//Use the connection to get and display the content
// type.System.out.println(urlConnection.getContentType());//Use the connection to get an InputStream object.
// Use the InputStream object to instantiate a// DataInputStream object.
BufferedReader htmlPage =new BufferedReader(new InputStreamReader(
url.openStream()));//Use the DataInputStream object to read and display// the file one line at a time.
while((dataLine = htmlPage.readLine()) != null){System.out.println(dataLine);
}//end while loop}//end try
catch(Exception e){e.printStackTrace();
}//end catch}//end main
}//end class Java4650a
-end-
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?