www.pudn.com > 33_online_store.rar > AdLinkRotatorServlet.java
package shopcart.servlets;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import shopcart.servlets.*;
import DebugLog;
public class AdLinkRotatorServlet extends GenericServlet
implements SingleThreadModel
{
protected Vector ads;
protected int curIndex;
protected String imageURL;
protected DebugLog logger;
public void init(ServletConfig config) throws ServletException
{
String imageDirName;
String logServer;
File imageDir=null;
File adSpec=null;
super.init(config);
curIndex = 0;
ads = new Vector();
imageDirName = getInitParameter("imagedir");
imageURL = getInitParameter("imageroot");
logServer = getInitParameter("logserver");
logger = new DebugLog();
logger.logTo(logServer);
try
{
if(imageDirName != null) imageDir = new File(imageDirName);
if(imageDir != null) adSpec = new File(imageDir,"ads.txt");
logger.log("Looking for adspec at: "+adSpec);
//Try to load the ads from a specification file
if((adSpec != null)&& adSpec.exists())
{
try
{
FileReader fileIn = new FileReader(adSpec);
BufferedReader bufIn = new BufferedReader(fileIn);
String curLine;
int index;
String link,fileName;
AdFileEntry newEntry;
while((curLine = bufIn.readLine()) != null)
{
index = curLine.indexOf(" ");
if(index > 0)
{
link = curLine.substring(0,index);
fileName = curLine.substring(index+1);
newEntry = new AdFileEntry(link,fileName);
ads.addElement(newEntry);
}
}
bufIn.close();
}
catch(Exception exp)
{
logger.log("Invalid ad spec. file.");
ads.removeAllElements();
}
}
//If no spec file, or a bad one, just show ads
if((ads.size()==0)
&& (imageDir!=null)
&& imageDir.exists()
&& imageDir.isDirectory())
{
String[] files;
int i,max;
files = imageDir.list();
max = files.length;
for(i=0;i0)
{
curEntry = (AdFileEntry) ads.elementAt(curIndex);
if(curEntry.link != null)
{
out.print("");
}
out.print("
");
if(curEntry.link != null)
{
out.println("");
}
curIndex= (curIndex+1)%len;
}
else
{
//Print a comment to HTML for testing
out.println("");
}
}
catch(Exception exp)
{
logger.log(exp);
}
}
}
class AdFileEntry
{
public String link;
public String fileName;
public AdFileEntry(String l,String file)
{
link = l;
fileName = file;
}
}