BookStoreServlet.java
/* * * */ import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import database.*; import exception.*; /** * An HTTP Servlet that overrides the service method to return a * simple web page. */ public class BookStoreServlet extends HttpServlet { private BookDB bookDB; public void init() throws ServletException { bookDB = (BookDB)getServletContext().getAttribute("bookDB"); if (bookDB == null) throw new UnavailableException("Couldn't get database."); } public void destroy() { bookDB.remove(); bookDB = null; } public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); ResourceBundle messages = (ResourceBundle)session.getAttribute("messages"); if (messages == null) { Locale locale=request.getLocale(); messages = ResourceBundle.getBundle("messages.BookstoreMessages", locale); session.setAttribute("messages", messages); } // set content-type header before accessing the Writer response.setContentType("text/html"); response.setBufferSize(8192); PrintWriter out = response.getWriter(); // then write the data of the response out.println("<html>" + "<head><title>Duke's Bookstore</title></head>"); // Get the dispatcher; it gets the banner to the user RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/banner"); if (dispatcher != null) dispatcher.include(request, response); try { BookDetails bd = bookDB.getBookDetails("203"); //Left cell -- the "book of choice" out.println("<b>" + messages.getString("What") + "</b>" + "<p>" + "<blockquote>" + "<em><a href=\"" + response.encodeURL(request.getContextPath() + "/bookdetails?bookId=203") + "\">" + bd.getTitle() + "</a></em>" + messages.getString("Talk") + "</blockquote>"); //Right cell -- various navigation options out.println("<p><a href=\"" + response.encodeURL(request.getContextPath() + "/catalog") + "\"><b>" + messages.getString("Start") + "</b></a></font><br>" + "<br> &nbsp;" + "<br> &nbsp;" + "<br> &nbsp;" + "</body>" + "</html>"); } catch (BookNotFoundException ex) { response.resetBuffer(); throw new ServletException(ex); } out.close(); } public String getServletInfo() { return "The BookStore servlet returns the main web page " + "for Duke's Bookstore."; } }