?? getdescriptionservlet.java
字號:
// Fig. 16.31: GetDescriptionServlet.java
// Retrieves description of an item from database
package cartXML;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.text.*;
import java.sql.*;
import org.w3c.dom.*;
public class GetDescriptionServlet extends HttpServlet {
private Database database;
public void init( ServletConfig config )
throws ServletException
{
super.init( config );
database = new Database( "jdbc:odbc:catalog", "anonymous",
"guest" );
database.connect();
}
public void service( HttpServletRequest req,
HttpServletResponse res )
throws ServletException, IOException
{
try {
HttpSession session = req.getSession( true );
ShoppingCart cart =
( ShoppingCart ) session.getAttribute( "cart" );
ServletContext sc = getServletConfig()
.getServletContext();
if ( cart.getUsername() == null ) {
sc.getRequestDispatcher( "/index.wml" )
.forward( req, res );
return;
}
String productID = req.getParameter( "productID" );
String techID = req.getParameter( "techID" );
String query = "SELECT * FROM Products, Authors, "
+ "AuthorList WHERE Products.productID= "
+ productID + " AND Products.productID = "
+ "Authorlist.productid AND Authorlist.authorid = "
+ "Authors.authorID";
ResultSet rs = database.get( query );
rs.next();
double price = rs.getDouble( "price" );
String unformattedPrice = String.valueOf( price );
NumberFormat priceFormatter =
NumberFormat.getCurrencyInstance();
String formattedPrice = priceFormatter.format( price );
XMLCreator xmlCreator = new XMLCreator();
Node productNode = xmlCreator.initialize( "product" );
Node itemNode = xmlCreator.addChild(
productNode, "item" );
xmlCreator.addTextNode( xmlCreator.addChild( itemNode,
"title" ), rs.getString( "title" ) );
xmlCreator.addTextNode( xmlCreator.addChild( itemNode,
"edition" ), rs.getString( "edition" ) );
xmlCreator.addTextNode( xmlCreator.addChild( itemNode,
"pubdate" ), rs.getString( "pubdate" ) );
xmlCreator.addTextNode( xmlCreator.addChild( itemNode,
"isbn" ), rs.getString( "isbn" ) );
xmlCreator.addTextNode( xmlCreator.addChild( itemNode,
"author" ), rs.getString( "Name" ) );
xmlCreator.addTextNode( xmlCreator.addChild( itemNode,
"productID" ), productID );
xmlCreator.addTextNode( xmlCreator.addChild( itemNode,
"formattedPrice" ), formattedPrice );
xmlCreator.addTextNode( xmlCreator.addChild( itemNode,
"unFormattedPrice" ), String.valueOf( price ) );
xmlCreator.addTextNode( xmlCreator.addChild( itemNode,
"techID" ), techID );
res.setContentType( "text/vnd.wap.wml" );
PrintWriter output = res.getWriter();
Processor processor = new Processor();
processor.process( xmlCreator.getDocument(),
"C:/jakarta-tomcat/webapps/chapter16/description.xsl",
output );
}
catch ( SQLException sqlex ) {
sqlex.printStackTrace();
}
}
public void destroy()
{
database.shutDown();
}
}
/*
**************************************************************************
* (C) Copyright 2001 by Deitel & Associates, Inc. and Prentice Hall. *
* All Rights Reserved. *
* *
* DISCLAIMER: The authors and publisher of this book have used their *
* best efforts in preparing the book. These efforts include the *
* development, research, and testing of the theories and programs *
* to determine their effectiveness. The authors and publisher make *
* no warranty of any kind, expressed or implied, with regard to these *
* programs or to the documentation contained in these books. The authors *
* and publisher shall not be liable in any event for incidental or *
* consequential damages in connection with, or arising out of, the *
* furnishing, performance, or use of these programs. *
**************************************************************************
*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -