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

📄 orderpage.java

📁 Online flight booking
💻 JAVA
字号:
package coreservlets;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.text.NumberFormat;

/** Shows all items currently in ShoppingCart. Clients
 *  have their own session that keeps track of which
 *  ShoppingCart is theirs. If this is their first visit
 *  to the order page, a new shopping cart is created.
 *  Usually, people come to this page by way of a page
 *  showing catalog entries, so this page adds an additional
 *  item to the shopping cart. But users can also
 *  bookmark this page, access it from their history list,
 *  or be sent back to it by clicking on the "Update Order"
 *  button after changing the number of items ordered.
 *  <P>
 *  Taken from Core Servlets and JavaServer Pages
 *  from Prentice Hall and Sun Microsystems Press,
 *  http://www.coreservlets.com/.
 *  &copy; 2000 Marty Hall; may be freely used or adapted.
 */
public class OrderPage extends HttpServlet {

    public void doGet(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {
        HttpSession session = request.getSession(true);
        ShoppingCart cart;
        synchronized (session) {

            if (session.getAttribute("login") == null) {
                response.setContentType("text/html");
                PrintWriter out = response.getWriter();

                out.println("<html>");
                out.println("<head>");
                out.println("<title>User is not logged in</title>");
                out.println("</head>");
                out.println("<body>");
                out.println("<br><p align=\"center\">Please log in <a href=\"./login.html\">here</a> first</p>");
                out.println("</body>");
                out.println("</html>");
                out.close();
                return;
            }

            cart = (ShoppingCart) session.getAttribute("shoppingCart");
            // New visitors get a fresh shopping cart.
            // Previous visitors keep using their existing cart.
            if (cart == null) {
                cart = new ShoppingCart();
                session.setAttribute("shoppingCart", cart);
            }
            String itemID = request.getParameter("itemID");
            if (itemID != null) {
                String numItemsString =
                        request.getParameter("numItems");
                if (numItemsString == null) {
                    // If request specified an ID but no number,
                    // then customers came here via an "Add Item to Cart"
                    // button on a catalog page.
                    cart.addItem(itemID);
                } else {
                    // If request specified an ID and number, then
                    // customers came here via an "Update Order" button
                    // after changing the number of items in order.
                    // Note that specifying a number of 0 results
                    // in item being deleted from cart.
                    int numItems;
                    try {
                        numItems = Integer.parseInt(numItemsString);
                    } catch (NumberFormatException nfe) {
                        numItems = 1;
                    }
                    cart.setNumOrdered(itemID, numItems);
                }
            }
        }
        // Whether or not the customer changed the order, show
        // order status.
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        String title = "Status of Your Order";
        out.println(ServletUtilities.headWithTitle(title) +
                "<BODY BGCOLOR=\"#FDF5E6\">\n" +
                "<H1 ALIGN=\"CENTER\">" + title + "</H1>");
        synchronized (session) {
            Vector itemsOrdered = cart.getItemsOrdered();
            if (itemsOrdered.size() == 0) {
                out.println("<H2><I>No items in your cart...</I></H2>");
            } else {
                // If there is at least one item in cart, show table
                // of items ordered.
                out.println("<TABLE BORDER=1 ALIGN=\"CENTER\">\n" +
                        "<TR BGCOLOR=\"#FFAD00\">\n" +
                        "  <TH>Item ID<TH>Description\n" +
                        "  <TH>Unit Cost<TH>Number<TH>Total Cost");
                ItemOrder order;

                // Rounds to two decimal places, inserts dollar
                // sign (or other currency symbol), etc., as
                // appropriate in current Locale.
                NumberFormat formatter =
                        NumberFormat.getCurrencyInstance();

                String formURL =
                        "./OrderPage";
                // Pass URLs that reference own site through encodeURL.
                formURL = response.encodeURL(formURL);

                // For each entry in shopping cart, make
                // table row showing ID, description, per-item
                // cost, number ordered, and total cost.
                // Put number ordered in textfield that user
                // can change, with "Update Order" button next
                // to it, which resubmits to this same page
                // but specifying a different number of items.
                for (int i = 0; i < itemsOrdered.size(); i++) {
                    order = (ItemOrder) itemsOrdered.elementAt(i);
                    out.println("<TR>\n" +
                            "  <TD>" + order.getItemID() + "\n" +
                            "  <TD>" + order.getAirlineName() + "\n" +
                            "  <TD>" +
                            formatter.format(order.getUnitCost()) + "\n" +
                            "  <TD>" +
                            "<FORM ACTION=\"" + formURL + "\">\n" +
                            "<INPUT TYPE=\"HIDDEN\" NAME=\"itemID\"\n" +
                            "       VALUE=\"" + order.getItemID() + "\">\n" +
                            "<INPUT TYPE=\"TEXT\" NAME=\"numItems\"\n" +
                            "       SIZE=3 VALUE=\"" +
                            order.getNumItems() + "\">\n" +
                            "<SMALL>\n" +
                            "<INPUT TYPE=\"SUBMIT\"\n " +
                            "       VALUE=\"Update Order\">\n" +
                            "</SMALL>\n" +
                            "</FORM>\n" +
                            "  <TD>" +
                            formatter.format(order.getTotalCost()));
                }
                String checkoutURL =
                        response.encodeURL("./Checkout.html");
                // "Proceed to Checkout" button below table
                out.println("</TABLE>\n" +
                        "<FORM ACTION=\"" + checkoutURL + "\">\n" +
                        "<BIG><CENTER>\n" +
                        "<INPUT TYPE=\"SUBMIT\"\n" +
                        "       VALUE=\"Proceed to Checkout\">\n" +
                        "</CENTER></BIG></FORM>");
            }
            out.println("</BODY></HTML>");
        }
    }

    /** POST and GET requests handled identically. */
    public void doPost(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

⌨️ 快捷键说明

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