/* * @(#)CustomerInfo.java * * Copyright (c) 1998 Karl Moss. All Rights Reserved. * * You may study, use, modify, and distribute this software for any * purpose provided that this copyright notice appears in all copies. * * This software is provided WITHOUT WARRANTY either expressed or * implied. * * @author Karl Moss * @version 1.0 * @date 15May98 * */ package javaservlets.rmi; import javax.servlet.*; import javax.servlet.http.*; import javaservlets.rmi.server.*; /** *

This is a simple servlet that will return customer * information. Note that this servlet implements the * SingleThreadModel interface which will force the Web browser * to synchronize all requests */ public class CustomerInfo extends HttpServlet implements SingleThreadModel { /** *

Performs the HTTP POST operation * * @param req The request from the client * @param resp The response from the servlet */ public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException { // Create a PrintWriter to write the response java.io.PrintWriter out = new java.io.PrintWriter(resp.getOutputStream()); // Set the content type of the response resp.setContentType("text/html"); // Print the HTML header out.println(""); out.println(""); out.println("Customer Balance Information"); out.println(""); // Get the Customer id String id = null; String values[] = req.getParameterValues("CustomerID"); if (values != null) { id = values[0]; } // The target host. Change to 'rmi://yourhost/' when the // server runs on a remote machine String host = ""; try { // Attempt to bind to the remote host and get the // instance of the Customer object CustomerInterface cust = (CustomerInterface) java.rmi.Naming.lookup(host + "Customer"); // We have an instance of the remote object. Get the // customer information CustomerData data = cust.getCustomerData(id); // Format the HTML out.println("The current balance for " + data.name + " is $" + data.balance); } catch (Exception ex) { // Turn exceptions into a servlet exception ex.printStackTrace(); throw new ServletException(ex.getMessage()); } // Wrap up out.println(""); out.flush(); out.close(); } /** *

Initialize the servlet. This is called once when the * servlet is loaded. It is guaranteed to complete before any * requests are made to the servlet * * @param cfg Servlet configuration information */ public void init(ServletConfig cfg) throws ServletException { super.init(cfg); } /** *

Destroy the servlet. This is called once when the servlet * is unloaded. */ public void destroy() { super.destroy(); } }