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

📄 info.java

📁 Java的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 + -