📄 adservlet.java
字号:
package jabadot;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;/** * Banner Ad Rotator, similar to the M$ Ad Rotator provided in ASP. * * Converted to a servlet for efficiency. * * Picks ad at random. * * Input file format is like this: * URL-to-image:alt-desc:ImageName * e.g. * http://woo.trbleclick.com/images/Gurfle.gif:Georgeous Grufles:GGBanner.gif */public class AdServlet extends HttpServlet { /** The list of ads */ protected ArrayList list; /** The File object for statting the adlist file */ protected File file; /** A Random Number generator for picking the next ad. */ Random r = new Random(); protected long load_time = 0; /** initialize the AdServlet -- load the adlist */ public void init(ServletConfig cfg) throws ServletException { try { String adsList = JDConstants.getProperty("jabadot.dir.ads") + JDConstants.getProperty("jabadot.ads_def_list"); System.err.println("AdServlet: Opening " + adsList); file = new File(adsList); list = AdAccessor.load(file); load_time = file.lastModified(); } catch (IOException e) { throw new ServletException(e.toString()); } } /** Print the HTML for the next advertisement for a user. */ public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); // If the list-of-ads file has changed, reload it. // Synchronized so we only reload once, to avoid having // multiple threads calling load(). synchronized(this) { if (load_time < file.lastModified()) { out.println("<!-- reloaded adrotator -->"); list = AdAccessor.load(file); load_time = file.lastModified(); } } // Pick an ad at random from the list int n = r.nextInt(list.size()); Ad ad = (Ad)list.get(n); // Convert it to HTML out.println("<!-- Ad link made by AdServlet -->"); out.println(ad.html); } public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { doPost(req, resp); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -