⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vieworderservlet.java

📁 java web services how to program
💻 JAVA
字号:
// Fig. 11.26: ViewOrderServlet.java// ViewOrderServlet enables a user to view the status of orders // created by the JAXM applications.package com.deitel.jws1.jaxm.bookbuyer.sender;// Java core packagesimport java.io.*;import java.util.*;import java.sql.*;import java.text.NumberFormat;// Java extension packagesimport javax.servlet.http.*;import javax.servlet.*;import javax.xml.parsers.*;import javax.xml.transform.*;import javax.xml.transform.dom.*;import javax.xml.transform.stream.*;// W3C XML packagesimport org.w3c.dom.*;public class ViewOrderServlet extends HttpServlet {   private Connection connection; // connection to database   // factories for creating XML and applying XSLT   private DocumentBuilderFactory factory;   private TransformerFactory transformerFactory;   // setup database connection for servlet   public void init( ServletConfig servletConfig )       throws ServletException    {      super.init( servletConfig );      // initialize connection to database      try {         // obtain URL of properties file         java.net.URL propertyURL = getClass().getResource(             "bookStock.properties" );         // load properties file         Properties databaseProperties = new Properties();         databaseProperties.load( new FileInputStream(             propertyURL.getPath() ) );         // load JDBC driver         Class.forName( databaseProperties.getProperty(             "jdbcDriver" ) );         // establish database connection         connection = DriverManager.getConnection(            databaseProperties.getProperty( "databaseURI" ) );         // create factory to build XML Documents         factory = DocumentBuilderFactory.newInstance();         // create factory to apply XSLT         transformerFactory = TransformerFactory.newInstance();      }       // handle exception if database driver does not exist      catch ( ClassNotFoundException classNotFoundException ) {         classNotFoundException.printStackTrace();      }      // handle exception in making Connection      catch ( SQLException sqlException ) {         sqlException.printStackTrace();      }      // handle exception in loading properties file      catch ( IOException ioException ) {         ioException.printStackTrace();      }   } // end method init   // invoked upon receiving message   public void doGet( HttpServletRequest request,       HttpServletResponse response ) throws ServletException   {      // determine whether order was successful      try {         // SQL query to database         Statement statement = connection.createStatement(             ResultSet.TYPE_SCROLL_INSENSITIVE,            ResultSet.CONCUR_READ_ONLY );         // make query to extract order information         ResultSet resultSet = statement.executeQuery( "SELECT" +            " orderID, isbn, quantity, price FROM orders" );         Document orderXmlDocument = null;         // view order information         if ( resultSet != null )            orderXmlDocument = createXML( resultSet );         if ( orderXmlDocument != null )            applyXSLT( "XSL/viewOrder_XHTML.xsl",                orderXmlDocument, response );         statement.close();      }      // handle exception in accessing database      catch ( SQLException sqlException ) {         sqlException.printStackTrace();      }      // handle exception in applying XSLT      catch ( IOException ioException ) {         ioException.printStackTrace();      }   } // end method doGet   // create XML document from ResultSet   private Document createXML( ResultSet resultSet )      throws SQLException   {      // use ResultSet to build XML document      try {         DocumentBuilder builder = factory.newDocumentBuilder();         Document document = builder.newDocument();         // create orders root Element         Element orders = document.createElement( "orders" );         document.appendChild( orders );         // store ID, isbn, quantity and price in order Element         while ( resultSet.next() ) {            // create order Element for each order            Element order = document.createElement( "order" );            // obtain ID, isbn, quantity and price from resultSet            Integer ID =                new Integer( resultSet.getInt( "orderID" ) );            String isbn = resultSet.getString( "isbn" );            Integer quantity =                new Integer( resultSet.getInt( "quantity" ) );            Double price =                new Double( resultSet.getDouble( "price" ) );            // create Elements for ID, isbn, quantity and price             Element orderID =                document.createElement( "orderID" );            Element orderIsbn = document.createElement( "isbn" );            Element orderQuantity =                document.createElement( "quantity" );            Element orderPrice =                document.createElement( "price" );            // append elements as children to Element order            order.appendChild( orderID );            order.appendChild( orderIsbn );            order.appendChild( orderQuantity );            order.appendChild( orderPrice );            // create NumberFormat to format price to US locale            NumberFormat priceFormatter =                NumberFormat.getCurrencyInstance( Locale.US );            // store ID, isbn, quantity and price information            orderID.appendChild(                document.createTextNode( ID.toString() ) );            orderIsbn.appendChild(                document.createTextNode( isbn ) );            orderQuantity.appendChild(                document.createTextNode( quantity.toString() ) );            orderPrice.appendChild( document.createTextNode(                priceFormatter.format( price ) ) );            // append each order Element to root Element orders            orders.appendChild( order );         }         return document;      }      // handle exception in parsing      catch ( ParserConfigurationException parserException ) {         parserException.printStackTrace();         return null;      }   } // end method createXML   // apply XSLT style sheet to XML document   private void applyXSLT( String xslFile, Document xmlDocument,      HttpServletResponse response ) throws IOException   {      // apply XSLT      try {         // open InputStream for XSL document          InputStream xslStream =             getServletContext().getResourceAsStream( xslFile );         // create StreamSource for XSLT document         Source xslSource = new StreamSource( xslStream );         // create DOMSource for source XML document         Source xmlSource = new DOMSource( xmlDocument );         // get PrintWriter for writing data to client         PrintWriter output = response.getWriter();         // create StreamResult for transformation result         Result result = new StreamResult( output );         // create Transformer for XSL transformation         Transformer transformer =            transformerFactory.newTransformer( xslSource );         // transform and deliver content to client         transformer.transform( xmlSource, result );      }      // handle exception transforming content      catch ( TransformerException transformerException ) {         transformerException.printStackTrace();      }   } // end method applyXSLT} // end class ViewOrderServlet

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -