/************************************************************* * AddressBookManagerServlet parses the AddressBook.xml file * and manages all DOM-based updates, deletes, and so on. * * Kelli Wiseth [kelli_wiseth@yahoo.com] * NDNU | XML and Web Services * Fall 2004 * **************************************************************** */ // Java core packages import java.io.*; import java.util.*; // Java extension packages import javax.servlet.*; import javax.servlet.http.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.*; import javax.xml.transform.stream.*; // third-party packages import org.w3c.dom.*; import org.xml.sax.*; public class AddressBookManagerServlet extends HttpServlet { DocumentBuilder addressBookParser; Document addressBook; Element contact; /*public void init(ServletConfig config) throws ServletException { // super.init(config); // ServletContext context = getServletContext(); System.out.println("inside the init method "); } */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("inside the HttpServletRequest but before try-block "); try { // obtain default parser and parse the XML addressbook System.out.println("inside the try block, but before parse "); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setValidating( false ); DocumentBuilder addressBookParser = dbf.newDocumentBuilder(); Document addressBook = addressBookParser.parse("http://localhost:80/addressbook/AddressBook.xml"); addressBook.getDocumentElement().normalize(); NodeList contactsAll = addressBook.getElementsByTagName("Contact"); NodeList namesAll = addressBook.getElementsByTagName("Name"); // Setup PrintWriter for output and start writing HTML to client response.setContentType( "text/html" ); PrintWriter out = response.getWriter(); out.println(""); out.println("Contact Management System [Servlet reply]"); out.println(""); out.println("

Contact Management System [Servlet Reply]

"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); for (int ctr = 0; ctr < contactsAll.getLength(); ctr++) { int nodeIndex = ctr+1; Node contactName = namesAll.item(ctr); Element names = (Element)namesAll.item(ctr); NodeList lastNameList = names.getElementsByTagName("Last"); Node lastNameElement = lastNameList.item(0); Node lastNameTextNode = lastNameElement.getFirstChild(); String lastNameText = lastNameTextNode.getNodeValue().trim(); NodeList firstNameList = names.getElementsByTagName("First"); Element firstNameElement = (Element)firstNameList.item(0); Node firstNameTextNode = firstNameElement.getFirstChild(); String firstNameText = firstNameTextNode.getNodeValue().trim(); out.println(""); } //for-loop ctr1 // close PrintWriter out.println(""); }//try block // handle exception thrown by DocumentBuilder catch ( ParserConfigurationException parserException ) { parserException.printStackTrace(); } // handle exception thrown by Parser catch ( SAXException saxException ) { saxException.printStackTrace(); } // handle exception thrown when reading data from file catch ( IOException ioException ) { System.out.print("some kind of IO problem... oops..\n"); System.exit( 1 ); } } //doGet } // class AddressBookManagerServlet
"); out.println("
 
"); out.println("AddressBook Listing
Last nameFirst nameContact id Manage this"); out.println(" contact:
" + lastNameText + "" + firstNameText+ ""); out.println("" + nodeIndex + "