<%@ page import="java.net.*"%> <%@ page import="java.io.*"%> <%@ page import="javax.xml.parsers.DocumentBuilderFactory"%> <%@ page import="javax.xml.parsers.ParserConfigurationException"%> <%@ page import="org.xml.sax.SAXException"%> <%@ page import="org.w3c.dom.*"%> <%@ page import="java.util.*"%> <%! // The following code was graciously provided by Armond Avanes (http://www.armondavanes.com) private String tla_ads( HttpServletRequest request, HttpServletResponse response ) throws IOException, ParserConfigurationException, SAXException { // Number of seconds before connection to XML times out // (This can be left the way it is) int CONNECTION_TIMEOUT = 10; // Local file to store XML // This file MUST be writable by web server // You should create a blank file and CHMOD it to 666 String LOCAL_XML_FILENAME = "local_292010.xml"; String INVENTORY_KEY = "WI4235BTH6EUBUB2GN6M"; File localXmlFile = new File( getServletConfig().getServletContext().getRealPath(LOCAL_XML_FILENAME ) ); if( !localXmlFile.exists() ) { return( "Script error: " + localXmlFile.getName() + " does not exist. Please create a blank file named " + localXmlFile.getName() + "." ); } if( !localXmlFile.canWrite() ) { return( "Script error: " + localXmlFile.getName() + " is not writable. Please set write permissions on " + localXmlFile.getName() + "." ); } if( localXmlFile.lastModified()<(new Date().getTime() - 3600*1000) || localXmlFile.length()<20 ) { String request_uri = (request.getRequestURI()!=null) ? request.getRequestURI() : ""; String user_agent = (request.getHeader("User-Agent")!=null) ? request.getHeader("User-Agent") : ""; URL url = new URL("http://www.text-link-ads.com/xml.php?inventory_key=" + INVENTORY_KEY + "&referer=" + response.encodeURL( request_uri ) + "&user_agent=" + response.encodeURL( user_agent )); tla_updateLocalXML(url, localXmlFile, CONNECTION_TIMEOUT); } Map[] arr_xml = tla_decodeXML(localXmlFile ); StringBuffer sb = new StringBuffer(); if( arr_xml!=null && arr_xml.length>0 ) { sb.append( "\n"); } return sb.toString(); } private void tla_updateLocalXML(URL url, File file, int time_out) throws IOException { file.setLastModified( new Date().getTime() ); String xml = file_get_contents_tla(url, time_out); if( xml!=null && !xml.trim().equals("") ) { FileWriter fw = new FileWriter(file); fw.write( xml ); fw.close(); } } private String file_get_contents_tla(URL url, int time_out) throws IOException { URLConnection urlConnection = url.openConnection(); //urlConnection.setConnectTimeout( time_out * 1000 ); //urlConnection.setReadTimeout( time_out * 1000 ); InputStream is = urlConnection.getInputStream(); StringBuffer content = new StringBuffer(); int ch; while( (ch=is.read())!=-1 ) content.append( (char)ch ); is.close(); return content.toString(); } private Map[] tla_decodeXML(File file) throws ParserConfigurationException, IOException, SAXException { Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse( file ); Node linksRoot = dom.getFirstChild(); NodeList links = linksRoot.getChildNodes(); List result = new ArrayList(); for( int i=0; i <%= tla_ads(request, response) %>