{"id":10480,"date":"2015-08-29T00:20:10","date_gmt":"2015-08-29T04:20:10","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/?p=10480"},"modified":"2015-08-24T10:30:25","modified_gmt":"2015-08-24T14:30:25","slug":"an-example-travel-site","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=10480","title":{"rendered":"An example Travel Site"},"content":{"rendered":"<pre>quick-search.html Front end to travel site\r\n\r\n&lt;!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\"&gt;\r\n&lt;!--\r\nFront end to travel servlet.\r\n\r\nTaken from Core Web Programming Java 2 Edition\r\nfrom Prentice Hall and Sun Microsystems Press,\r\n.\r\nMay be freely used or adapted.\r\n--&gt;\r\n&lt;HTML&gt;\r\n&lt;HEAD&gt;\r\n\u00a0 &lt;TITLE&gt;Online Travel Quick Search&lt;\/TITLE&gt;\r\n\u00a0 &lt;LINK REL=STYLESHEET\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HREF=\"travel-styles.css\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE=\"text\/css\"&gt;\r\n&lt;\/HEAD&gt;\r\n&lt;BODY&gt;\r\n&lt;BR&gt;\r\n&lt;H1&gt;Online Travel Quick Search&lt;\/H1&gt;\r\n&lt;FORM ACTION=\"\/servlet\/cwp.Travel\" METHOD=\"POST\"&gt;\r\n&lt;CENTER&gt;\r\nEmail address: &lt;INPUT TYPE=\"TEXT\" NAME=\"emailAddress\"&gt;&lt;BR&gt;\r\nPassword: &lt;INPUT TYPE=\"PASSWORD\" NAME=\"password\" SIZE=10&gt;&lt;BR&gt;\r\nOrigin: &lt;INPUT TYPE=\"TEXT\" NAME=\"origin\"&gt;&lt;BR&gt;\r\nDestination: &lt;INPUT TYPE=\"TEXT\" NAME=\"destination\"&gt;&lt;BR&gt;\r\nStart date (MM\/DD\/YY):\r\n\u00a0 &lt;INPUT TYPE=\"TEXT\" NAME=\"startDate\" SIZE=8&gt;&lt;BR&gt;\r\nEnd date (MM\/DD\/YY):\r\n\u00a0 &lt;INPUT TYPE=\"TEXT\" NAME=\"endDate\" SIZE=8&gt;&lt;BR&gt;\r\n&lt;P&gt;\r\n&lt;TABLE CELLSPACING=1&gt;\r\n&lt;TR&gt;\r\n\u00a0 &lt;TH&gt; &lt;IMG SRC=\"airplane.gif\" WIDTH=100 HEIGHT=29\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ALIGN=\"TOP\" ALT=\"Book Flight\"&gt; \r\n\u00a0 &lt;TH&gt; &lt;IMG SRC=\"car.gif\" WIDTH=100 HEIGHT=31\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ALIGN=\"MIDDLE\" ALT=\"Rent Car\"&gt; \r\n\u00a0 &lt;TH&gt; &lt;IMG SRC=\"bed.gif\" WIDTH=100 HEIGHT=85\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ALIGN=\"MIDDLE\" ALT=\"Find Hotel\"&gt; \r\n\u00a0 &lt;TH&gt; &lt;IMG SRC=\"passport.gif\" WIDTH=71 HEIGHT=100\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ALIGN=\"MIDDLE\" ALT=\"Edit Account\"&gt; \r\n&lt;TR&gt;\r\n\u00a0 &lt;TH&gt;&lt;SMALL&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;INPUT TYPE=\"SUBMIT\" NAME=\"flights\" VALUE=\"Book Flight\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/SMALL&gt;\r\n\u00a0 &lt;TH&gt;&lt;SMALL&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;INPUT TYPE=\"SUBMIT\" NAME=\"cars\" VALUE=\"Rent Car\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/SMALL&gt;\r\n\u00a0 &lt;TH&gt;&lt;SMALL&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;INPUT TYPE=\"SUBMIT\" NAME=\"hotels\" VALUE=\"Find Hotel\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/SMALL&gt;\r\n\u00a0 &lt;TH&gt;&lt;SMALL&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;INPUT TYPE=\"SUBMIT\" NAME=\"account\" VALUE=\"Edit Account\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/SMALL&gt;\r\n&lt;\/TABLE&gt;\r\n&lt;\/CENTER&gt;\r\n&lt;\/FORM&gt;\r\n&lt;BR&gt;\r\n&lt;P ALIGN=\"CENTER\"&gt;\r\n&lt;B&gt;Not yet a member? Get a free account\r\n&lt;A HREF=\"accounts.jsp\"&gt;here&lt;\/A&gt;.&lt;\/B&gt;&lt;\/P&gt;\r\n&lt;\/BODY&gt;\r\n&lt;\/HTML&gt;\r\n\r\n\r\nTravel.java\u00a0 Servlet used by travel site. Uses the MVC architecture in that servlet just does computation; all presentation done by JSP. Uses the TravelCustomer bean.\r\n\r\n\r\n\r\n\r\npackage cwp;\r\n\r\nimport java.io.*;\r\nimport javax.servlet.*;\r\nimport javax.servlet.http.*;\r\n\r\n\/** Top-level travel-processing servlet. This servlet sets up\r\n\u00a0*\u00a0 the customer data as a bean, then forwards the request\r\n\u00a0*\u00a0 to the airline booking page, the rental car reservation\r\n\u00a0*\u00a0 page, the hotel page, the existing account modification\r\n\u00a0*\u00a0 page, or the new account page.\r\n\u00a0*\u00a0 &lt;P&gt;\r\n\u00a0*\u00a0 Taken from Core Web Programming Java 2 Edition\r\n\u00a0*\u00a0 from Prentice Hall and Sun Microsystems Press,\r\n\u00a0*\u00a0 .\r\n\u00a0*\u00a0 May be freely used or adapted.\r\n\u00a0*\/\r\n\r\npublic class Travel extends HttpServlet {\r\n\u00a0 private TravelCustomer[] travelData;\r\n\r\n\u00a0 public void init() {\r\n\u00a0\u00a0\u00a0 travelData = TravelData.getTravelData();\r\n\u00a0 }\r\n\r\n\u00a0 \/** Since password is being sent, use POST only. However,\r\n\u00a0\u00a0 *\u00a0 the use of POST means that you cannot forward\r\n\u00a0\u00a0 *\u00a0 the request to a static HTML page, since the forwarded\r\n\u00a0\u00a0 *\u00a0 request uses the same request method as the original\r\n\u00a0\u00a0 *\u00a0 one, and static pages cannot handle POST. Solution:\r\n\u00a0\u00a0 *\u00a0 have the \"static\" page be a JSP file that contains\r\n\u00a0\u00a0 *\u00a0 HTML only. That's what accounts.jsp is. The other\r\n\u00a0\u00a0 *\u00a0 JSP files really need to be dynamically generated,\r\n\u00a0\u00a0 *\u00a0 since they make use of the customer data.\r\n\u00a0\u00a0 *\/\r\n\r\n\u00a0 public void doPost(HttpServletRequest request,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HttpServletResponse response)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 throws ServletException, IOException {\r\n\u00a0\u00a0\u00a0 String emailAddress = request.getParameter(\"emailAddress\");\r\n\u00a0\u00a0\u00a0 String password = request.getParameter(\"password\");\r\n\u00a0\u00a0\u00a0 TravelCustomer customer =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 TravelCustomer.findCustomer(emailAddress, travelData);\r\n\u00a0\u00a0\u00a0 if ((customer == null) || (password == null) ||\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (!password.equals(customer.getPassword()))) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 gotoPage(\"\/travel\/accounts.jsp\", request, response);\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 \/\/ The methods that use the following parameters will\r\n\u00a0\u00a0\u00a0 \/\/ check for missing or malformed values.\r\n\u00a0\u00a0\u00a0 customer.setStartDate(request.getParameter(\"startDate\"));\r\n\u00a0\u00a0\u00a0 customer.setEndDate(request.getParameter(\"endDate\"));\r\n\u00a0\u00a0\u00a0 customer.setOrigin(request.getParameter(\"origin\"));\r\n\u00a0\u00a0\u00a0 customer.setDestination(request.getParameter\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (\"destination\"));\r\n\u00a0\u00a0\u00a0 HttpSession session = request.getSession(true);\r\n\u00a0\u00a0\u00a0 session.setAttribute(\"customer\", customer);\r\n\u00a0\u00a0\u00a0 if (request.getParameter(\"flights\") != null) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 gotoPage(\"\/travel\/BookFlights.jsp\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 request, response);\r\n\u00a0\u00a0\u00a0 } else if (request.getParameter(\"cars\") != null) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 gotoPage(\"\/travel\/RentCars.jsp\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 request, response);\r\n\u00a0\u00a0\u00a0 } else if (request.getParameter(\"hotels\") != null) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 gotoPage(\"\/travel\/FindHotels.jsp\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 request, response);\r\n\u00a0\u00a0\u00a0 } else if (request.getParameter(\"cars\") != null) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 gotoPage(\"\/travel\/EditAccounts.jsp\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 request, response);\r\n\u00a0\u00a0\u00a0 } else {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 gotoPage(\"\/travel\/IllegalRequest.jsp\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 request, response);\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0 }\r\n\r\n\u00a0 private void gotoPage(String address,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HttpServletRequest request,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HttpServletResponse response)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 throws ServletException, IOException {\r\n\u00a0\u00a0\u00a0 RequestDispatcher dispatcher =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 getServletContext().getRequestDispatcher(address);\r\n\u00a0\u00a0\u00a0 dispatcher.forward(request, response);\r\n\u00a0 }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\nTravelCustomer Bean\r\n\r\npackage cwp;\r\n\r\nimport java.util.*;\r\nimport java.text.*;\r\n\r\n\/** Describes a travel services customer. Implemented\r\n\u00a0*\u00a0 as a bean with some methods that return data in HTML\r\n\u00a0*\u00a0 format, suitable for access from JSP.\r\n\u00a0*\u00a0 &lt;P&gt;\r\n\u00a0*\u00a0 Taken from Core Web Programming Java 2 Edition\r\n\u00a0*\u00a0 from Prentice Hall and Sun Microsystems Press,\r\n\u00a0*\u00a0 .\r\n\u00a0*\u00a0 May be freely used or adapted.\r\n\u00a0*\/\r\n\r\npublic class TravelCustomer {\r\n\u00a0 private String emailAddress, password, firstName, lastName;\r\n\u00a0 private String creditCardName, creditCardNumber;\r\n\u00a0 private String phoneNumber, homeAddress;\r\n\u00a0 private String startDate, endDate;\r\n\u00a0 private String origin, destination;\r\n\u00a0 private FrequentFlyerInfo[] frequentFlyerData;\r\n\u00a0 private RentalCarInfo[] rentalCarData;\r\n\u00a0 private HotelInfo[] hotelData;\r\n\r\n\u00a0 public TravelCustomer(String emailAddress,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String password,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String firstName,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String lastName,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String creditCardName,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String creditCardNumber,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String phoneNumber,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String homeAddress,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 FrequentFlyerInfo[] frequentFlyerData,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 RentalCarInfo[] rentalCarData,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HotelInfo[] hotelData) {\r\n\u00a0\u00a0\u00a0 setEmailAddress(emailAddress);\r\n\u00a0\u00a0\u00a0 setPassword(password);\r\n\u00a0\u00a0\u00a0 setFirstName(firstName);\r\n\u00a0\u00a0\u00a0 setLastName(lastName);\r\n\u00a0\u00a0\u00a0 setCreditCardName(creditCardName);\r\n\u00a0\u00a0\u00a0 setCreditCardNumber(creditCardNumber);\r\n\u00a0\u00a0\u00a0 setPhoneNumber(phoneNumber);\r\n\u00a0\u00a0\u00a0 setHomeAddress(homeAddress);\r\n\u00a0\u00a0\u00a0 setStartDate(startDate);\r\n\u00a0\u00a0\u00a0 setEndDate(endDate);\r\n\u00a0\u00a0\u00a0 setFrequentFlyerData(frequentFlyerData);\r\n\u00a0\u00a0\u00a0 setRentalCarData(rentalCarData);\r\n\u00a0\u00a0\u00a0 setHotelData(hotelData);\r\n\u00a0 }\r\n\r\n\u00a0 public String getEmailAddress() {\r\n\u00a0\u00a0\u00a0 return(emailAddress);\r\n\u00a0 }\r\n\r\n\u00a0 public void setEmailAddress(String emailAddress) {\r\n\u00a0\u00a0\u00a0 this.emailAddress = emailAddress;\r\n\u00a0 }\r\n\r\n\u00a0 public String getPassword() {\r\n\u00a0\u00a0\u00a0 return(password);\r\n\u00a0 }\r\n\r\n\u00a0 public void setPassword(String password) {\r\n\u00a0\u00a0\u00a0 this.password = password;\r\n\u00a0 }\r\n\r\n\u00a0 public String getFirstName() {\r\n\u00a0\u00a0\u00a0 return(firstName);\r\n\u00a0 }\r\n\r\n\u00a0 public void setFirstName(String firstName) {\r\n\u00a0\u00a0\u00a0 this.firstName = firstName;\r\n\u00a0 }\r\n\r\n\u00a0 public String getLastName() {\r\n\u00a0\u00a0\u00a0 return(lastName);\r\n\u00a0 }\r\n\r\n\u00a0 public void setLastName(String lastName) {\r\n\u00a0\u00a0\u00a0 this.lastName = lastName;\r\n\u00a0 }\r\n\r\n\u00a0 public String getFullName() {\r\n\u00a0\u00a0\u00a0 return(getFirstName() + \" \" + getLastName());\r\n\u00a0 }\r\n\r\n\u00a0 public String getCreditCardName() {\r\n\u00a0\u00a0\u00a0 return(creditCardName);\r\n\u00a0 }\r\n\r\n\u00a0 public void setCreditCardName(String creditCardName) {\r\n\u00a0\u00a0\u00a0 this.creditCardName = creditCardName;\r\n\u00a0 }\r\n\r\n\u00a0 public String getCreditCardNumber() {\r\n\u00a0\u00a0\u00a0 return(creditCardNumber);\r\n\u00a0 }\r\n\r\n\u00a0 public void setCreditCardNumber(String creditCardNumber) {\r\n\u00a0\u00a0\u00a0 this.creditCardNumber = creditCardNumber;\r\n\u00a0 }\r\n\r\n\u00a0 public String getCreditCard() {\r\n\u00a0\u00a0\u00a0 String cardName = getCreditCardName();\r\n\u00a0\u00a0\u00a0 String cardNum = getCreditCardNumber();\r\n\u00a0\u00a0\u00a0 cardNum = cardNum.substring(cardNum.length() - 4);\r\n\u00a0\u00a0\u00a0 return(cardName + \" (XXXX-XXXX-XXXX-\" + cardNum + \")\");\r\n\u00a0 }\r\n\r\n\u00a0 public String getPhoneNumber() {\r\n\u00a0\u00a0\u00a0 return(phoneNumber);\r\n\u00a0 }\r\n\r\n\u00a0 public void setPhoneNumber(String phoneNumber) {\r\n\u00a0\u00a0\u00a0 this.phoneNumber = phoneNumber;\r\n\u00a0 }\r\n\r\n\u00a0 public String getHomeAddress() {\r\n\u00a0\u00a0\u00a0 return(homeAddress);\r\n\u00a0 }\r\n\r\n\u00a0 public void setHomeAddress(String homeAddress) {\r\n\u00a0\u00a0\u00a0 this.homeAddress = homeAddress;\r\n\u00a0 }\r\n\r\n\u00a0 public String getStartDate() {\r\n\u00a0\u00a0\u00a0 return(startDate);\r\n\u00a0 }\r\n\r\n\u00a0 public void setStartDate(String startDate) {\r\n\u00a0\u00a0\u00a0 this.startDate = startDate;\r\n\u00a0 }\r\n\r\n\u00a0 public String getEndDate() {\r\n\u00a0\u00a0\u00a0 return(endDate);\r\n\u00a0 }\r\n\r\n\u00a0 public void setEndDate(String endDate) {\r\n\u00a0\u00a0\u00a0 this.endDate = endDate;\r\n\u00a0 }\r\n\r\n\u00a0 public String getOrigin() {\r\n\u00a0\u00a0\u00a0 return(origin);\r\n\u00a0 }\r\n\r\n\u00a0 public void setOrigin(String origin) {\r\n\u00a0\u00a0\u00a0 this.origin = origin;\r\n\u00a0 }\r\n\r\n\u00a0 public String getDestination() {\r\n\u00a0\u00a0\u00a0 return(destination);\r\n\u00a0 }\r\n\r\n\u00a0 public void setDestination(String destination) {\r\n\u00a0\u00a0\u00a0 this.destination = destination;\r\n\u00a0 }\r\n\r\n\u00a0 public FrequentFlyerInfo[] getFrequentFlyerData() {\r\n\u00a0\u00a0\u00a0 return(frequentFlyerData);\r\n\u00a0 }\r\n\r\n\u00a0 public void setFrequentFlyerData(FrequentFlyerInfo[]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 frequentFlyerData) {\r\n\u00a0\u00a0\u00a0 this.frequentFlyerData = frequentFlyerData;\r\n\u00a0 }\r\n\r\n\u00a0 public String getFrequentFlyerTable() {\r\n\u00a0\u00a0\u00a0 FrequentFlyerInfo[] frequentFlyerData =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 getFrequentFlyerData();\r\n\u00a0\u00a0\u00a0 if (frequentFlyerData.length == 0) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 return(\"&lt;I&gt;No frequent flyer data recorded.&lt;\/I&gt;\");\r\n\u00a0\u00a0\u00a0 } else {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 String table =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"&lt;TABLE&gt;\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"\u00a0 &lt;TR&gt;&lt;TH&gt;Airline&lt;TH&gt;Frequent Flyer Number\\n\";\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 for(int i=0; i&lt;frequentFlyerData.length; i++) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 FrequentFlyerInfo info = frequentFlyerData[i];\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 table = table +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"&lt;TR ALIGN=\\\"CENTER\\\"&gt;\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"&lt;TD&gt;\" + info.getAirlineName() +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"&lt;TD&gt;\" + info.getFrequentFlyerNumber() + \"\\n\";\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 table = table + \"&lt;\/TABLE&gt;\\n\";\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 return(table);\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0 }\r\n\r\n\u00a0 public RentalCarInfo[] getRentalCarData() {\r\n\u00a0\u00a0\u00a0 return(rentalCarData);\r\n\u00a0 }\r\n\r\n\u00a0 public void setRentalCarData(RentalCarInfo[] rentalCarData) {\r\n\u00a0\u00a0\u00a0 this.rentalCarData = rentalCarData;\r\n\u00a0 }\r\n\r\n\u00a0 public HotelInfo[] getHotelData() {\r\n\u00a0\u00a0\u00a0 return(hotelData);\r\n\u00a0 }\r\n\r\n\u00a0 public void setHotelData(HotelInfo[] hotelData) {\r\n\u00a0\u00a0\u00a0 this.hotelData = hotelData;\r\n\u00a0 }\r\n\r\n\u00a0 \/\/ This would be replaced by a database lookup\r\n\u00a0 \/\/ in a real application.\r\n\r\n\u00a0 public String getFlights() {\r\n\u00a0\u00a0\u00a0 String flightOrigin =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 replaceIfMissing(getOrigin(), \"Nowhere\");\r\n\u00a0\u00a0\u00a0 String flightDestination =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 replaceIfMissing(getDestination(), \"Nowhere\");\r\n\u00a0\u00a0\u00a0 Date today = new Date();\r\n\u00a0\u00a0\u00a0 DateFormat formatter =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 DateFormat.getDateInstance(DateFormat.MEDIUM);\r\n\u00a0\u00a0\u00a0 String dateString = formatter.format(today);\r\n\u00a0\u00a0\u00a0 String flightStartDate =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 replaceIfMissing(getStartDate(), dateString);\r\n\u00a0\u00a0\u00a0 String flightEndDate =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 replaceIfMissing(getEndDate(), dateString);\r\n\u00a0\u00a0\u00a0 String [][] flights =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 { { \"Java Airways\", \"1522\", \"455.95\", \"Java, Indonesia\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Sun Microsystems\", \"9:00\", \"3:15\" },\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 { \"Servlet Express\", \"2622\", \"505.95\", \"New Atlanta\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"New Atlanta\", \"9:30\", \"4:15\" },\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 { \"Geek Airlines\", \"3.14159\", \"675.00\", \"JHU\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"MIT\", \"10:02:37\", \"2:22:19\" } };\r\n\u00a0\u00a0\u00a0 String flightString = \"\";\r\n\u00a0\u00a0\u00a0 for(int i=0; i&lt;flights.length; i++) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 String[] flightInfo = flights[i];\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 flightString =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 flightString + getFlightDescription(flightInfo[0],\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 flightInfo[1],\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 flightInfo[2],\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 flightInfo[3],\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 flightInfo[4],\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 flightInfo[5],\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 flightInfo[6],\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 flightOrigin,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 flightDestination,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 flightStartDate,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 flightEndDate);\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 return(flightString);\r\n\u00a0 }\r\n\r\n\u00a0 private String getFlightDescription(String airline,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String flightNum,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String price,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String stop1,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String stop2,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String time1,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String time2,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String flightOrigin,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String flightDestination,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String flightStartDate,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String flightEndDate) {\r\n\u00a0\u00a0\u00a0 String flight =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \"&lt;P&gt;&lt;BR&gt;\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \"&lt;TABLE WIDTH=\\\"100%\\\"&gt;&lt;TR&gt;&lt;TH CLASS=\\\"COLORED\\\"&gt;\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \"&lt;B&gt;\" + airline + \" Flight \" + flightNum +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \" ($\" + price + \")&lt;\/B&gt;&lt;\/TABLE&gt;&lt;BR&gt;\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \"&lt;B&gt;Outgoing:&lt;\/B&gt; Leaves \" + flightOrigin +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \" at \" + time1 + \" AM on \" + flightStartDate +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \", arriving in \" + flightDestination +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \" at \" + time2 + \" PM (1 stop -- \" + stop1 + \").\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \"&lt;BR&gt;\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \"&lt;B&gt;Return:&lt;\/B&gt; Leaves \" + flightDestination +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \" at \" + time1 + \" AM on \" + flightEndDate +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \", arriving in \" + flightOrigin +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \" at \" + time2 + \" PM (1 stop -- \" + stop2 + \").\\n\";\r\n\u00a0\u00a0\u00a0 return(flight);\r\n\u00a0 }\r\n\r\n\u00a0 private String replaceIfMissing(String value,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String defaultValue) {\r\n\u00a0\u00a0\u00a0 if ((value != null) &amp;&amp; (value.length() &gt; 0)) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 return(value);\r\n\u00a0\u00a0\u00a0 } else {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 return(defaultValue);\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0 }\r\n\r\n\u00a0 public static TravelCustomer findCustomer\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (String emailAddress,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TravelCustomer[] customers) {\r\n\u00a0\u00a0\u00a0 if (emailAddress == null) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 return(null);\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 for(int i=0; i&lt;customers.length; i++) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 String custEmail = customers[i].getEmailAddress();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 if (emailAddress.equalsIgnoreCase(custEmail)) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return(customers[i]);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 return(null);\r\n\u00a0 }\r\n}\r\n\r\n\r\n\r\nBookFlights.jsp, RentCars.jsp, FindHotels.jsp, EditAccounts.jsp, and IllegalRequest.jsp Pages used by the Travel servlet to do its presentation.\r\n\r\n\r\n&lt;!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\"&gt;\r\n&lt;!-- \r\nFlight-finding page for travel example.\r\n\r\nTaken from Core Web Programming Java 2 Edition\r\nfrom Prentice Hall and Sun Microsystems Press,\r\n.\r\nMay be freely used or adapted.\r\n--&gt;\r\n&lt;HTML&gt;\r\n&lt;HEAD&gt;\r\n\u00a0 &lt;TITLE&gt;Best Available Flights&lt;\/TITLE&gt;\r\n\u00a0 &lt;LINK REL=STYLESHEET\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HREF=\"\/travel\/travel-styles.css\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE=\"text\/css\"&gt;\r\n&lt;\/HEAD&gt;\r\n&lt;BODY&gt;\r\n&lt;H1&gt;Best Available Flights&lt;\/H1&gt;\r\n&lt;CENTER&gt;\r\n&lt;jsp:useBean id=\"customer\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 class=\"cwp.TravelCustomer\" \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 scope=\"session\" \/&gt;\r\nFinding flights for\r\n&lt;jsp:getProperty name=\"customer\" property=\"fullName\" \/&gt;\r\n&lt;P&gt;\r\n&lt;jsp:getProperty name=\"customer\" property=\"flights\" \/&gt;\r\n&lt;P&gt;&lt;BR&gt;&lt;HR&gt;&lt;BR&gt;\r\n&lt;FORM ACTION=\"\/servlet\/BookFlight\"&gt;\r\n&lt;jsp:getProperty name=\"customer\" \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 property=\"frequentFlyerTable\" \/&gt;\r\n&lt;P&gt;\r\n&lt;B&gt;Credit Card:&lt;\/B&gt;\r\n&lt;jsp:getProperty name=\"customer\" property=\"creditCard\" \/&gt;\r\n&lt;P&gt;\r\n&lt;INPUT TYPE=\"SUBMIT\" NAME=\"holdButton\" VALUE=\"Hold for 24 Hrs\"&gt;\r\n&lt;P&gt;\r\n&lt;INPUT TYPE=\"SUBMIT\" NAME=\"bookItButton\" VALUE=\"Book It!\"&gt;\r\n&lt;\/FORM&gt;\r\n&lt;\/CENTER&gt;\r\n&lt;\/BODY&gt;\r\n&lt;\/HTML&gt;\r\n\r\n\r\n&lt;!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\"&gt;\r\n&lt;!-- \r\nCar rental page not implemented -- see airline booking page.\r\n\r\nTaken from Core Web Programming Java 2 Edition\r\nfrom Prentice Hall and Sun Microsystems Press,\r\n.\r\nMay be freely used or adapted.\r\n--&gt;\r\n&lt;HTML&gt;\r\n&lt;HEAD&gt;\r\n\u00a0 &lt;TITLE&gt;Not Implemented&lt;\/TITLE&gt;\r\n\u00a0 &lt;LINK REL=STYLESHEET\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HREF=\"\/travel\/travel-styles.css\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE=\"text\/css\"&gt;\r\n&lt;\/HEAD&gt;\r\n&lt;BODY&gt;\r\n&lt;H1&gt;Car Rental Page Not Implemented&lt;\/H1&gt;\r\n&lt;CENTER&gt;\r\nHey, this is only an example. See the airline booking page.\r\n&lt;\/CENTER&gt;\r\n&lt;\/BODY&gt;\r\n&lt;\/HTML&gt;\r\n\r\n\r\n&lt;!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\"&gt;\r\n&lt;!-- \r\nHotel page not implemented -- see airline booking page.\r\n\r\nTaken from Core Web Programming Java 2 Edition\r\nfrom Prentice Hall and Sun Microsystems Press,\r\n.\r\nMay be freely used or adapted.\r\n--&gt;\r\n&lt;HTML&gt;\r\n&lt;HEAD&gt;\r\n\u00a0 &lt;TITLE&gt;Not Implemented&lt;\/TITLE&gt;\r\n\u00a0 &lt;LINK REL=STYLESHEET\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HREF=\"\/travel\/travel-styles.css\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE=\"text\/css\"&gt;\r\n&lt;\/HEAD&gt;\r\n&lt;BODY&gt;\r\n&lt;H1&gt;Hotel Page Not Implemented&lt;\/H1&gt;\r\n&lt;CENTER&gt;\r\nHey, this is only an example. See the airline booking page.\r\n&lt;\/CENTER&gt;\r\n&lt;\/BODY&gt;\r\n&lt;\/HTML&gt;\r\n\r\n&lt;!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\"&gt;\r\n&lt;!-- \r\nAccount page not implemented -- see airline booking page.\r\n\r\nTaken from Core Web Programming Java 2 Edition\r\nfrom Prentice Hall and Sun Microsystems Press,\r\n.\r\nMay be freely used or adapted.\r\n--&gt;\r\n&lt;HTML&gt;\r\n&lt;HEAD&gt;\r\n\u00a0 &lt;TITLE&gt;Not Implemented&lt;\/TITLE&gt;\r\n\u00a0 &lt;LINK REL=STYLESHEET\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HREF=\"\/travel\/travel-styles.css\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE=\"text\/css\"&gt;\r\n&lt;\/HEAD&gt;\r\n&lt;BODY&gt;\r\n&lt;H1&gt;Accounts Page Not Implemented&lt;\/H1&gt;\r\n&lt;CENTER&gt;\r\nHey, this is only an example. See the airline booking page.\r\n&lt;\/CENTER&gt;\r\n&lt;\/BODY&gt;\r\n&lt;\/HTML&gt;\r\n\r\n&lt;!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\"&gt;\r\n&lt;!-- \r\nIllegal request at Travel Quick Search page.\r\n\r\nTaken from Core Web Programming Java 2 Edition\r\nfrom Prentice Hall and Sun Microsystems Press,\r\n.\r\nMay be freely used or adapted.\r\n--&gt;\r\n&lt;HTML&gt;\r\n&lt;HEAD&gt;\r\n\u00a0 &lt;TITLE&gt;Illegal Request&lt;\/TITLE&gt;\r\n\u00a0 &lt;LINK REL=STYLESHEET\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HREF=\"\/travel\/travel-styles.css\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE=\"text\/css\"&gt;\r\n&lt;\/HEAD&gt;\r\n&lt;BODY&gt;\r\n&lt;H1&gt;Illegal Request&lt;\/H1&gt;\r\n&lt;CENTER&gt;Please try again.&lt;\/CENTER&gt;\r\n&lt;\/BODY&gt;\r\n&lt;\/HTML&gt;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>quick-search.html Front end to travel site &lt;!DOCTYPE HTML PUBLIC &#8220;-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN&#8221;&gt; &lt;!&#8211; Front end to travel servlet. Taken from Core Web Programming Java 2 Edition from Prentice Hall and Sun Microsystems Press, . May be freely used or adapted. &#8211;&gt; &lt;HTML&gt; &lt;HEAD&gt; \u00a0 &lt;TITLE&gt;Online Travel Quick Search&lt;\/TITLE&gt; \u00a0 &lt;LINK REL=STYLESHEET \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HREF=&#8221;travel-styles.css&#8221; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=10480\">Continue reading<\/a><\/p>\n","protected":false},"author":130,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1417,1424],"tags":[706,308,285],"class_list":["post-10480","post","type-post","status-publish","format-standard","hentry","category-code-programming-samples--","category-javaj2eej2me","tag-code","tag-java","tag-285","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":27146,"url":"http:\/\/bangla.sitestree.com\/?p=27146","url_meta":{"origin":10480,"position":0},"title":"An example Travel Site #Programming Code Examples #Java\/J2EE\/J2ME #Applets and Basic Graphics","author":"Author-Check- Article-or-Video","date":"May 12, 2021","format":false,"excerpt":"quick-search.html Front end to travel site <!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\"> <!-- Front end to travel servlet. Taken from Core Web Programming Java 2 Edition from Prentice Hall and Sun Microsystems Press, . May be freely used or adapted. --> <HTML> <HEAD> <TITLE>Online Travel Quick Search<\/TITLE> <LINK REL=STYLESHEET\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6840,"url":"http:\/\/bangla.sitestree.com\/?p=6840","url_meta":{"origin":10480,"position":1},"title":"\u098f\u0987\u099a\u099f\u09bf\u098f\u09ae\u098f\u09b2 \u0987\u09a8\u09aa\u09c1\u099f \u09a7\u09b0\u09a8 (HTML Input Types)","author":"Author-Check- Article-or-Video","date":"April 14, 2015","format":false,"excerpt":"-\u09ae\u09be\u09b8\u09c1\u09a6- \u00a0 \u0986\u099c\u0995\u09c7 \u0986\u09ae\u09b0\u09be \u099c\u09be\u09a8\u09ac\u09cb \u098f\u0987\u099a\u099f\u09bf\u098f\u09ae\u098f\u09b2 \u0987\u09a8\u09aa\u09c1\u099f \u09b8\u09ae\u09cd\u09aa\u09b0\u09cd\u0995\u09c7\u0964 \u099f\u09c7\u0995\u09cd\u09b8\u099f \u0987\u09a8\u09aa\u09c1\u099f \u09b8\u09be\u09a7\u09be\u09b0\u09a8 \u09a4\u09a5\u09cd\u09af \u0997\u09cd\u09b0\u09b9\u09a3 \u0995\u09b0\u09a4\u09c7 \u099f\u09c7\u0995\u09cd\u09b8\u099f \u0987\u09a8\u09aa\u09c1\u099f \u09ac\u09cd\u09af\u09ac\u09b9\u09c3\u09a4 \u09b9\u09df\u0964 \u098f\u09a7\u09b0\u09a8\u09c7\u09b0 \u0987\u09a8\u09aa\u09c1\u099f \u098f\u0995 \u09b2\u09be\u0987\u09a8\u09c7\u09b0 \u09b9\u09df\u09c7 \u09a5\u09be\u0995\u09c7\u0964 <form> First name:<br> <input type=\"text\" name=\"firstname\"> <br> Last name:<br> <input type=\"text\" name=\"lastname\"> <\/form> \u00a0 \u0989\u09aa\u09b0\u09cb\u0995\u09cd\u09a4 \u0995\u09cb\u09a1\u099f\u09bf \u0993\u09df\u09c7\u09ac \u09ac\u09cd\u09b0\u09be\u0989\u099c\u09be\u09b0\u09c7 \u09a6\u09c7\u0996\u09be \u09af\u09be\u09ac\u09c7 \u098f\u09ad\u09be\u09ac\u09c7\u0983 First name: Last name: \u00a0\u2026","rel":"","context":"In &quot;\u098f\u0987\u099a\u099f\u09bf\u098f\u09ae\u098f\u09b2 HTML&quot;","block_context":{"text":"\u098f\u0987\u099a\u099f\u09bf\u098f\u09ae\u098f\u09b2 HTML","link":"http:\/\/bangla.sitestree.com\/?cat=494"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10469,"url":"http:\/\/bangla.sitestree.com\/?p=10469","url_meta":{"origin":10480,"position":2},"title":"FilterExample.jsp Page that uses the FilterTag custom tag","author":"","date":"August 28, 2015","format":false,"excerpt":"FilterExample.jsp Page that uses the FilterTag custom tag <!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\"> <!-- Illustration of FilterTag tag. Taken from Core Web Programming Java 2 Edition from Prentice Hall and Sun Microsystems Press, . May be freely used or adapted. --> <HTML> <HEAD> <TITLE>HTML Logical Character Styles<\/TITLE> <LINK\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27125,"url":"http:\/\/bangla.sitestree.com\/?p=27125","url_meta":{"origin":10480,"position":3},"title":"FilterExample.jsp Page that uses the FilterTag custom tag #Programming Code Examples #Java\/J2EE\/J2ME #Applets and Basic Graphics","author":"Author-Check- Article-or-Video","date":"May 11, 2021","format":false,"excerpt":"FilterExample.jsp Page that uses the FilterTag custom tag <!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\"> <!-- Illustration of FilterTag tag. Taken from Core Web Programming Java 2 Edition from Prentice Hall and Sun Microsystems Press, . May be freely used or adapted. --> <HTML> <HEAD> <TITLE>HTML Logical Character Styles<\/TITLE> <LINK\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10476,"url":"http:\/\/bangla.sitestree.com\/?p=10476","url_meta":{"origin":10480,"position":4},"title":"IfExample.jsp Page that uses the custom nested tags","author":"","date":"August 29, 2015","format":false,"excerpt":"IfExample.jsp Page that uses the custom nested tags <!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\"> <!-- Illustration of IfTag tag. Taken from Core Web Programming Java 2 Edition from Prentice Hall and Sun Microsystems Press, . May be freely used or adapted. --> <HTML> <HEAD> <TITLE>If Tag Example<\/TITLE> <LINK REL=STYLESHEET\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27142,"url":"http:\/\/bangla.sitestree.com\/?p=27142","url_meta":{"origin":10480,"position":5},"title":"IfExample.jsp Page that uses the custom nested tags #Programming Code Examples #Java\/J2EE\/J2ME #Applets and Basic Graphics","author":"Author-Check- Article-or-Video","date":"May 12, 2021","format":false,"excerpt":"IfExample.jsp Page that uses the custom nested tags <!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\"> <!-- Illustration of IfTag tag. Taken from Core Web Programming Java 2 Edition from Prentice Hall and Sun Microsystems Press, . May be freely used or adapted. --> <HTML> <HEAD> <TITLE>If Tag Example<\/TITLE> <LINK REL=STYLESHEET\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/users\/130"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10480"}],"version-history":[{"count":2,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10480\/revisions"}],"predecessor-version":[{"id":10482,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10480\/revisions\/10482"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10480"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}