<< Chapter < Page Chapter >> Page >

Listing 5 creates a URL object that points to the file named page1.html in the directory named baldwin on the server at Austin Community College where I teach.

No port was specified

The URL object will not contain a port specification because I didn't provide a port number. Later when we use one of the methods of the URL class along withthis URL object to make a connection to the server, the connection will, by default, be made to port 80 which is the standard port for servers that support the HTTPprotocol.

In other words, when the port is not provided (the URL object contains a port number of -1) , the connection method of the URL class will use the protocol portion of the URL to decide which port to connect to.

Open a connection to the URL

Once you have a URL object, there are a number of things that you can do with it. One of the things you can do with it is to open input and output streams that will be connected to the server software that is monitoring the port ofinterest.

The code in Listing 6 opens a connection to the URL described by this URL object and returns an input stream object for reading data from the connection. This is the point where the port number defaults on the basis of theprotocol specification in the URL object.

Listing 6 - Open a connection to the URL.
BufferedReader htmlPage = new BufferedReader(new InputStreamReader(url.openStream()));

Be aware that only a small portion of the statement in Listing 6 has to do with URL processing. The remainder of the statement has to do with the more complex topicof I/O stream processing.

Read and display the data

The remaining code in this program, as shown in Listing 7 , is completely straightforward. Data is read from the stream one line at a time and displayedas it is read. The readLine method returns null when there is no more data to be read from the stream and the program terminates.

Listing 7 - Read and display the data.
while((dataLine = htmlPage.readLine()) != null){ System.out.println(dataLine);}//end while loop

Not complicated at all

As you can see, it is very easy to write a program that will connect to an HTTP server and download the contents of a specified file. There are lotsof things that you do by using this as a starting point. A common assignments given tostudents is to add a little more knowledge and code to this and to write a crawler that will crawl the web searching for some specified filecontents.

Run the programs

I encourage you to copy the code from Listing 8 and Listing 9 .Compile the code and execute it. Experiment with the code,making changes, and observing the results of your changes. Make certain that you can explain why your changes behave as they do.

What's next?

The next module in the series will deal with the URLConnection class.

Miscellaneous

This section contains a variety of miscellaneous information.

Housekeeping material
  • Module name: Java4640: The URL Class and the URLEncoder Class
  • File: Java4640.htm
  • Published: 03/02/14
  • Revised: 02/07/16
Disclaimers:

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.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask