⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commercials.java

📁 wap push功能程序 WAP开发网 : http://www.wapkf.com
💻 JAVA
字号:
package commercials;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;/** * Commercials class randomizes a commercial from a given list. * Initialization-parameters: *	"commercialsfile" is where you store the commercials * * The number before the commercial is the "priority number", the higher, * the bigger the chance is that this commercial appears. * * @version 1.0 * @since 1.0 * @see HttpServlet */public final class Commercials extends HttpServlet {    private static final String XML_VERSION = "<?xml version=\"1.0\"?>";    private static final String CONTENT_TYPE = "text/vnd.wap.wml";    private static final String DOC_TYPE =	"<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"\n" +	"  \"http://www.wapforum.org/DTD/wml_1.1.xml\">";    private static final Vector commercials = new Vector();    private static int[] priorities = null;    private static int prioritiesTogether=0;    /**     * This is the initialization code that runs only once.      * The servlet is being placed into service.     *     * @exception ServletException if an error occurs     */    public void init() throws ServletException {	String commercialsFile = getInitParameter ("commercialsfile");	commercialsFile = getServletContext().getRealPath(commercialsFile);	try {	    BufferedReader reader = new BufferedReader(new FileReader(commercialsFile));	    String line;	    while((line = reader.readLine()) != null) {		if(line.trim().equals("")) break;		commercials.add(line);	    }	}	catch (java.io.IOException e) {	    System.err.println(e);	    throw new ServletException(e);	}	priorities = new int[commercials.size()];	for (int i = 0; i < commercials.size(); ++i){	    String commercial = (String)commercials.get(i);	    StringTokenizer st = new StringTokenizer(commercial, ";");	    int number = Integer.parseInt(st.nextToken());	    priorities[i] = number;	    prioritiesTogether += number;	}    }    /**     * "doGet" is called when we want a commercial to appear.     *     * @param request a <code>HttpServletRequest</code> value     * @param response a <code>HttpServletResponse</code> value     * @exception ServletException if an error occurs     * @exception IOException if an error occurs     */    public void doGet(HttpServletRequest request, HttpServletResponse response)	throws ServletException, IOException {        HttpSession session = request.getSession();        boolean cookieCompatible = false;	String chosenCommercial = getRandomCommercial();	response.setContentType(CONTENT_TYPE);	// prevent caching of the response	response.setHeader("cache-control", "no-cache");	PrintWriter out = response.getWriter();	out.println(XML_VERSION);	out.println(DOC_TYPE);	out.println("<wml>");        out.println("<template>");        out.println("<do type=\"prev\">");        out.println("<prev/>");        out.println("</do>");        out.println("</template>");	out.println("<card id=\"ads\" title=\"Ads\">");	out.println("<p align=\"center\">***<br/>");	out.println(chosenCommercial);	out.println("<br/>***</p>");	out.println("</card>");	out.println("</wml>");    }    /**     * Selects randomly a commercial to be shown according to set priorities      * for the commercials     *     * @return a <code>String</code> value     */    public static String getRandomCommercial() {	try {	    if(priorities == null || priorities.length == 0) return "";	    int rnd = (int)(Math.random() * prioritiesTogether);	    int commercialToBeChosen = 0;	    int x = priorities[commercialToBeChosen];	    while(x<=rnd) 		x += priorities[++commercialToBeChosen];	    StringTokenizer st = 		new StringTokenizer((String)commercials.get(commercialToBeChosen), ";");	    System.out.println("commercial: " +  (String)commercials.get(commercialToBeChosen));	    st.nextToken();	    String chosenCommercial = st.nextToken();	    return chosenCommercial == null ? "" : chosenCommercial;	}	catch (Exception e) { System.err.println(e); return ""; }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -