Source Code : JSP and SAX

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

JSP and SAX

<%@ page import="javax.xml.parsers.SAXParserFactory,
                 javax.xml.parsers.SAXParser,
                 com.java2s.MyHandler"%>

<html>
  <head><title>JSP and SAX</title></head>
  <body>
    <%
      SAXParserFactory factory   = SAXParserFactory.newInstance();
      SAXParser        parser    = factory.newSAXParser();
      MyHandler        myHandler = new MyHandler(out);

      parser.parse("http://localhost:8080/chapter10/people.xml",
                   myHandler);
    %>
  </body>
</html>


package com.java2s;

import java.io.IOException;
import javax.servlet.jsp.JspWriter;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class MyHandler extends DefaultHandler
{
  private int       stepCount, totalAge;
  private JspWriter out;
  private boolean   insideAgeElement;
  
  public MyHandler(JspWriter out)
  {
    this.out = out;
  }

  public void startDocument() throws SAXException
  {
    try 
    {
      out.write(++stepCount + ". Start of document<br>");      
    }
    catch (IOException e) 
    {
      throw new SAXException(e);
    }    
  } // end of startDocument()

  public void endDocument() throws SAXException
  {
    try 
    {
      out.write(++stepCount + ". End of document<p>");
      out.write("The total of all ages in the XML document is <b><i>"
                + totalAge + "</i></b>");
    }
    catch (IOException e) 
    {
      throw new SAXException(e);
    }    
  } // end of endDocument()

  public void startElement(String namespaceURI, String localName,
                           String qName, Attributes attrs)
      throws SAXException
  {
    if ( qName.equals("age")) 
    {
      insideAgeElement = true;
    }
    
    try 
    {
      out.write(++stepCount + ". Start of element: <b>" + qName + "</b>");

      int numberOfAttributes = attrs.getLength();

      if ( numberOfAttributes > 0 ) 
      {
        out.write(". Attributes: <ul>");
      } // end of if ()
      else 
        out.write("<br>");
      
      for ( int i=0; i<numberOfAttributes; i++) 
      {
        out.write("<li>" + attrs.getQName(i) + " = "
                  + attrs.getValue(i) + "</li>");
      } // end of for ()
        
      if ( numberOfAttributes > 0 ) 
      {
        out.write("</ul>");
      }
    }
    catch (IOException e) 
    {
      throw new SAXException(e);
    }    
  } // end of startElement()

  public void endElement(String namespaceURI, String localName, String qName)
      throws SAXException
  {
    if ( qName.equals("age") ) 
    {
      insideAgeElement = false;
    }
    
    try 
    {
      out.write(++stepCount + ". End of element <b>" + qName + "</b><br>");      
    }
    catch (IOException e) 
    {
      throw new SAXException(e);
    } // end of try-catch
    
  } // end of endElement()

  public void characters(char[] chars, int start, int length) throws SAXException
  {
    String content = new String(chars, start, length);

    if ( insideAgeElement ) 
    {
      int age  =  Integer.parseInt(content);
      totalAge += age;
    }
    
    try 
    {
      out.write(++stepCount + ". Character content = ");

      if ( length > 0 ) 
        out.write("<b>" + content + "</b><br>");
    }
    catch (IOException e) 
    {
      throw new SAXException(e);
    } // end of try-catch
    
  } // end of characters()
} // end of class MyHandler



           
       

Thank with us