📄 printoutservlet.java
字号:
package airtickets;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class PrintoutServlet extends HttpServlet { /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); HttpSession session = request.getSession(true); ShoppingCart cart = (ShoppingCart)session.getAttribute("ShoppingCart"); if (cart == null) { cart = new ShoppingCart(); session.setAttribute("ShoppingCart", cart); } Integer ii = (Integer)session.getAttribute("quantity"); String flight_code = (String)session.getAttribute("flight_code"); int quantity = 0; if((ii != null) && (flight_code != null) ) { quantity = ii.intValue(); try { out.println("<html>"); out.println("<head>"); out.println("<title>AA Airways - Ticket Reservation System</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Reservation complete.</h1>"); out.println("<b>Passenger list:</b>"); out.println("<table>"); Passenger[] pass = new Passenger[quantity]; for(int i = 0; i < quantity; i++) { out.println("<tr><td>Passenger "+ (i+1) + ": </td><td>"); String name = (String)request.getParameter("name"+i); String surname = (String)request.getParameter("surname"+i); pass[i] = new Passenger(name, surname); out.println(name + " " + surname); out.println("</td></tr>"); } out.println("</table>"); Reservation r = new Reservation(flight_code, quantity, pass); cart.addItem(r); session.setAttribute("ShoppingCart", cart); //REMOVE ATTRIBUTES TO PREVENT USER FROM MAKING MORE THAN ONE RESERVATIONS //(e.g. if he goes back and presses Submit again) session.removeAttribute("flight_code"); session.removeAttribute("quantity"); out.println("Do you want to make another reservation? If yes, please go <a href=\"MainServlet\">here</a>, else proceed to <a href=\"CheckoutServlet\">checkout </a>"); out.println("</body>"); out.println("</html>"); } finally { out.close(); } } else { try { out.println("<html>"); out.println("<head>"); out.println("<title>AA Airways - Ticket Reservation System</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Reservation error</h1>"); out.println("Please do not use the \"Back\" and \"Forward\" buttons"); out.println("<br>Please go to the <a href=\"MainServlet\">start</a> to make a fresh reservation"); session.removeAttribute("flight_code"); session.removeAttribute("quantity"); out.println("</body>"); out.println("</html>"); } finally { out.close(); } } } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP <code>GET</code> method. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP <code>POST</code> method. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold>}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -