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

📄 info.java

📁 WAPpush WAP Push实现源码!
💻 JAVA
字号:
package info;import commercials.Commercials;import members.Members;import feedback.Feedback;import javax.servlet.*;import javax.servlet.http.*;import java.text.SimpleDateFormat;import java.sql.*;import java.io.*;import java.util.*;/** * Info pages * */public final class Info 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 SI_CONTENT_TYPE = "text/vnd.wap.si";    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\">";    /**     * Called by the server to allow a servlet to handle a GET request.      *     * @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 {	doPost(request, response);    }    /**     * Called by the server to allow a servlet to handle a POST request.     *     * @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 doPost(HttpServletRequest request, HttpServletResponse response) 	throws ServletException, IOException {	/* Session tracking. See the description in index.jsp */	HttpSession session = request.getSession();	boolean cookiesCheck = request.getHeader("cookie") != null && request.isRequestedSessionIdValid();	final String jsessionID = cookiesCheck ? "" : ";jsessionid=" + session.getId();	String dob = null; String name = null; String sex = null; String email = null; String pushMessages = null;	/* get user information from the current session object */	try{	    name = (String)session.getAttribute("name");	    dob = (String)session.getAttribute("dob");	    sex = (String)session.getAttribute("sex");	    email = (String)session.getAttribute("email");	    pushMessages = (String)session.getAttribute("pushservices");	}	catch (Exception E){	    E.printStackTrace();	}	/* check if WTAI functionality is supported by the client user agent */	final boolean wtaiSupport = wtaiSupported(request);	/* Administrator's user name */	final String ADMIN_USER = "admin";	/* start generating the response ... */        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("<!-- provides a way back using the prev element -->\n" +		    "<template>" +		    " <do type=\"prev\">" + 		    "  <prev/>" +		    " </do>" +		    "</template>");	out.println("<!-- Information page about news, opening hours, prices etc -->\n" +		    "<card title=\"Info\" id=\"main\">");	boolean showAdminMenu = name != null && name.equals(ADMIN_USER);	if (showAdminMenu) {	    out.println("<!-- only for System Administrator an \"AdminMenu\" is shown -->\n" +			"<do type=\"accept\" label=\"AdminMenu\" name=\"1\">\n" + 			" <go href=\"" + request.getRequestURI() + jsessionID + "#admin\"/>\n" +			"</do>\n" +			"<p><anchor title=\"Admin info\">Admin info" +			"  <go href=\"" + request.getRequestURI() + jsessionID + "#admin\"/>\n" +			"</anchor></p>");	} 	String commercial = Commercials.getRandomCommercial();	out.println(" <do type=\"accept\" label=\"New\" name=\"new\">" +		    "  <go href=\"" + request.getRequestURI() + jsessionID + "#new\"/>" +		    " </do>" +		    " <do type=\"accept\" label=\"Opening hours\" name=\"open\">" +		    "  <go href=\"" + request.getRequestURI() + jsessionID + "#open\"/>" +		    " </do>" +		    " <do type=\"accept\" label=\"Prices\" name=\"prices\">" +		    "  <go href=\"" + request.getRequestURI() + jsessionID + "#prices\"/>" +		    " </do>" +		    " <do type=\"accept\" label=\"Contact\" name=\"contact\">" +		    "  <go href=\"" + request.getRequestURI() + jsessionID + "#contact\"/>" +		    " </do>" + 		    " <p>" + 		    (!commercial.equals("") ? "*** " + commercial + "***<br/>" : "") + 		    "  <anchor title=\"New\">New" +		    "   <go href=\"" + request.getRequestURI() + jsessionID + "#new\"/>" +		    "  </anchor><br/>" +		    "  <anchor title=\"Opening hours\">Opening hours" +		    "   <go href=\"" + request.getRequestURI() + jsessionID + "#open\"/>" +		    "  </anchor><br/>" +		    "  <anchor title=\"Prices\">Prices" +		    "   <go href=\"" + request.getRequestURI() + jsessionID + "#prices\"/>" +		    "  </anchor><br/>" +		    "  <anchor title=\"Contact\">Contact" +		    "   <go href=\"" + request.getRequestURI() + jsessionID + "#contact\"/>" +		    "  </anchor>" +		    " </p>" +		    "</card>");	out.println("<!--  A card displaying opening hours of the Mobile Zoo  -->" +		    "<card title=\"Opening hours\" id=\"open\">" +		    " <p><strong>Mon-Fri:</strong>&#160;10am-8pm<br/>" +		    "  <strong>Sat-Sun:</strong>&#160;12am-9pm</p>" +		    "</card>");	out.println("<!-- Contact information -->" +		    "<card title=\"Contact information\" id=\"contact\">" +		    " <p>Zoo Hill 7, 33101 Zootown<br/>");	if(wtaiSupport) {	    out.println("<anchor title=\"Make call\">tel. 555-555-555" +			" <go href=\"wtai://wp/mc;555555555\"/>" +			"</anchor><br/>");		} else {	    out.println("tel. 555-555-555<br/>");	}	out.println(" <anchor title=\"Feedback\">Feedback" +		    "   <go href=\"feedback" + jsessionID+ "\"/>" +		    " </anchor></p>" +		    "</card>");	out.println("<card title=\"New\" id=\"new\">" +		    " <p><strong>Today:</strong>&#160;Check out our new \"Safari\" family restaurant next to the gate! Exotic cuisine in exotic setting!<br/>" +		    "  <strong>Last week:</strong> &#160; Flamingo pond is re-opened after the renovation." +		    " </p>" +		    "</card>");	out.println("<card title=\"Prices\" id=\"prices\">" +		    "<p>Adults: 5 &#x20AC;<br/>" +		    "Children: 3 &#x20AC;<br/>" +		    "Pensioners: 3 &#x20AC;<br/>" +		    "Season pass: 20 &#x20AC;<br/>");	if (dob != null) {	    out.println("Member information:<br/>");	    try {		int age = ageCalculator(dob);		if(age < 16) {		    out.println("<em>Today free entry for children!</em>");		}		else if(age < 65) {		    out.println("Special offer for you &#160;<strong>" + name + "</strong>! &#160;<em>As a member you will get" + 				" 2  &#x20AC; reduction out of the normal Adults ticket price.</em>");		}		else {		    out.println("<em>Today free entry for all senior members of the Zoo!</em>");		}	    }	    catch (Exception E) {		// E.printStackTrace();	    }	}	out.println(" </p>"  + 		    "</card>");	if (showAdminMenu) { 	    out.println("<card title=\"Administrator's info\" id=\"admin\">" +			" <p><anchor title=\"Feedback\">Feedback" +			"   <go href=\"" + request.getRequestURI() + jsessionID  + "#votestats\"/>" +			"  </anchor><br/>" +			"  <anchor title=\"Users\">Users" +			"   <go href=\"" + request.getRequestURI() + jsessionID + "#userstats\"/>" +			"  </anchor>" +			"  <do type=\"accept\" label=\"Votes\" name=\"1\">" +			"   <go href=\"" + request.getRequestURI() + jsessionID + "#votestats\"/>" +			"  </do>" +			"  <do type=\"accept\" label=\"Users\" name=\"2\">" +			"   <go href=\"" + request.getRequestURI() + jsessionID + "#userstats\"/>" +			"  </do>" +			" </p>" +			"</card>");	    out.println("<card title=\"Vote statistics\" id=\"votestats\"><p>");	    out.println(Feedback.viewVotes());	    out.println("</p></card>");	    out.println("<card title=\"User statistics\" id=\"userstats\">" +			"<p>" + viewUsers() +			"</p></card>");	}	out.println("</wml>");    }    /**     * <code>viewUsers</code> views the number of users (males and females).     *     * @return a <code>String</code> value     */    private static String viewUsers() {	int numberOfUsers = 0;	double numberOfMales = 0;	Statement stmt = Members.getStatement();	try {	    ResultSet rs = stmt.executeQuery("SELECT sex FROM members");	    while (rs.next()) {		++numberOfUsers;		if (rs.getString("sex").equals("m")) ++numberOfMales;	    }	}	catch (SQLException E){	    E.printStackTrace();	}	if(numberOfUsers == 0)	    return "No users";	else	    return "Users: " + numberOfUsers + "<br/>Male: " + Math.round(numberOfMales / (double)numberOfUsers * 100) + "%" 		+ "<br/>Female: " + Math.round(((double)numberOfUsers - numberOfMales) / (double)numberOfUsers * 100) + "%";    }    /**     * Calculates the current age on the basis of date of birth (dob) given in format "yyyy.mm.dd"     *     * @param dob a <code>String</code> value     * @return an <code>int</code> value     */    public static int ageCalculator(String dob) {	SimpleDateFormat s = new SimpleDateFormat("yyyy.MM.dd");	try {	    java.util.Date d = s.parse(dob);	    Calendar c = Calendar.getInstance();	    c.setTime(d);	    return Calendar.getInstance().get(Calendar.YEAR) - c.get(Calendar.YEAR);	}	catch(Exception e) { System.err.println(e); }	return -1;    }    /**      *  Check if the client phone supports wtai functionality.     *  The user-agent header information is utilised.     */    private boolean wtaiSupported(HttpServletRequest request) {	String wtaiSupportFile = getInitParameter("wtaisupport");	String userAgent = request.getHeader("User-Agent");	if(userAgent == null) return false;	userAgent = userAgent.toLowerCase();	wtaiSupportFile = getServletContext().getRealPath(wtaiSupportFile);	try {	    BufferedReader reader = new BufferedReader(new FileReader(wtaiSupportFile));	    String line;	    while((line = reader.readLine()) != null) {		line = line.trim().toLowerCase();		if(line.equals(""))  break;		if(userAgent.startsWith(line)) return true;	    }	}	catch (java.io.IOException e) {	    System.err.println(e);	}	return false;    }}

⌨️ 快捷键说明

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