<%@ page language="java" %><%@ page contentType="text/xml" %><%@ page import="java.io.*" %><%@ page import="java.net.*" %><%@ page import="java.util.*" %><% // getQuote.jsp // // by Anders Brownworth - anders-getQuote at anders.com // // This code is licensed under the GPL. // // accepts a "symbol" parameter, gets CSV data from finance.yahoo.com and returns // some XML with the quote information in the form: // // // // AAPL // APPLE COMPUTER // 37.5299 // 7/8/2005 11:06am // -0.1001 - -0.27% // String symbol = (String) request.getParameter( "symbol" ); if ( symbol != null ) { String csvString; URL url = null; URLConnection urlConn = null; InputStreamReader inStream = null; BufferedReader buff = null; String companyName = ""; String lastTrade = ""; String lastTradeDate = ""; String lastTradeTime = ""; String change = ""; try { url = new URL( "http://quote.yahoo.com/d/quotes.csv?s=" + symbol + "&f=snl1d1t1c" ); urlConn = url.openConnection( ); inStream = new InputStreamReader( urlConn.getInputStream( ) ); buff = new BufferedReader( inStream ); // get the quote as a csv string csvString = buff.readLine( ); // parse the csv string StringTokenizer tokenizer = new StringTokenizer( csvString, "\",\"" ); symbol = tokenizer.nextToken( ); companyName = tokenizer.nextToken( ); lastTrade = tokenizer.nextToken( ); lastTradeDate = tokenizer.nextToken( ); lastTradeTime = tokenizer.nextToken( ); change = tokenizer.nextToken( ); } catch( MalformedURLException e ) { System.out.println( "Please check the spelling of the URL: " + e.toString( ) ); } catch( IOException e1 ) { System.out.println( "Can't read from the Internet: " + e1.toString( ) ); } finally { try { inStream.close( ); buff.close( ); } catch( Exception e ){ e.printStackTrace( ); } } %> <%= symbol %> <%= companyName %> <%= lastTrade %> <%= lastTradeDate %> <%= lastTradeTime %> <%= change %> <% } else { %> No symbol requested. <% } %>