锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
package coreservlet;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
聽*
聽* @author DuYang
聽* @version
聽*/
public class NorthwindServlet extends HttpServlet {
聽聽聽
聽聽聽 /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
聽聽聽聽 * @param request servlet request
聽聽聽聽 * @param response servlet response
聽聽聽聽 */
聽聽聽
聽聽聽 /** A simple servlet that connects to a database and presents the results from the query in an
聽聽聽聽 *聽 HTML table.Ther driver,URL,username,,passwrd, and query are taken from input prarmeters.
聽聽聽聽 */
聽聽聽 protected void doPost(HttpServletRequest request, HttpServletResponse response)
聽聽聽 throws ServletException, IOException {
聽聽聽聽聽聽聽 response.setContentType("text/html");
聽聽聽聽聽聽聽 PrintWriter out=response.getWriter();
聽聽聽聽聽聽聽 String docType=
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 "+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "Transitional//EN\"\n";
聽聽聽聽聽聽聽 String title="Northwind Results";
聽聽聽聽聽聽聽 out.println(docType+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "<HTML>\n"+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "<HEAD><TITLE>"+title+"</TITLE></HEAD>\n"+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "<BODY BGCOLOR=\"#FDF5E6\"><CENTER>\n"+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "<H1>Database Results</H1>\n");
聽聽聽聽聽聽聽 String driver=request.getParameter("driver");
聽聽聽聽聽聽聽 String url=request.getParameter("url");
聽聽聽聽聽聽聽 String username=request.getParameter("username");
聽聽聽聽聽聽聽 String password=request.getParameter("password");
聽聽聽聽聽聽聽 String query=request.getParameter("query");
聽聽聽聽聽聽聽 showTable(driver,url,username,password,query,out);
聽聽聽聽聽聽聽 out.println("</CENTER></BODY></HTML>");
聽聽聽 }
聽聽聽聽聽聽聽 public void showTable(String driver,String url,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 String username,String password,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 String query,PrintWriter out)
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 try
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //load database driver if it's not already loaded.
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Class.forName(driver);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //Establish netword connection to database.
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Connection connection=
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 DriverManager.getConnection(url,username,password);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //Look up info about the database as a whole.
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 DatabaseMetaData dbMetaData=connection.getMetaData();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 out.println("<UL>");
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 String productName=
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 dbMetaData.getDatabaseProductName();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 String productVersion=
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 dbMetaData.getDatabaseProductVersion();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 out.println("<LI><B>Database:</B>"+productName+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "<LI><B>Version:</B>"+productVersion+"</UL>");
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Statement statement=connection.createStatement();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //Send query to database and store queries.
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ResultSet resultSet=statement.executeQuery(query);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //Print result.
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ResutlSetMetaData resultSetMetaData=
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 resultSet.getMetaData();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int columCount=resultSetMetaData.getColumnCount();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 out.println("<TR>");
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //Column index statrs at 1(a la SQL), not 0(a la Java).
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for(int i=1;i<columnCount;i++)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 out.println("<TH>"+resultSetMetaDate.getColumnName(i));
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 out.println();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //Step through each row, retrieving the data in each
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // column cell as String.
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for(int i=1;i<columnCount;i++)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 out.println("<TD>"+resultSet.getString(i));
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽 out.println();
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽 out.println("</TABLE>");
聽聽聽聽聽聽聽聽聽聽聽聽 connection.close();
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 catch(ClassNotFoundException e)
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 System.err.println("Error loading driver:"+e);
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 catch(SQLException e1)
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 System.err.println("Error connecting:"+e1);
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 catch(Exception ee)
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 System.err.println("Error with input:"+ee);
聽聽聽聽聽聽聽 }
聽聽聽 }
聽聽聽 private static void showResults(ResultSet results)throws SQLException
聽聽聽 {
聽聽聽聽聽聽聽 while(results.next())
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 System.out.println(results.getString(1)+"");
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 System.out.println("");
聽聽聽 }
聽聽聽 public static void printUsage()
聽聽聽 {
聽聽聽聽聽聽聽 System.out.println("Usage:PreparedStatements host"+"dbName username password"+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "vendow [print].");
聽聽聽 }
聽}
NorthwindForm.htm