send your code
> Hi,
>
>
> 1.I created a table called "users" in a database "content" with MS Access
> 97.
> This databse has been registered to ODBC driver.
>
> 2. I tried to use a servlet (T3.class) to check login.
> This servlet is called by login.html with a form included, which a user
> can input
> username and password.
>
> 3. It worked fine when I input username and password in the HTML form
first
> time, and click
> a submmit button. However, I got following error message when I refresh
> the login.html
> page, input another set username and password into the form, and click
> the submmit
> button. The servlet engine is Tomcat3.1 run on Windows 98 with jdk1.3
as
> a stand alone mode .
>
> java.sql.SQLException: General error
> at sun.jdbc.odbc.JdbcOdbc.throwGenericSQLException(Unknown Source)
> at sun.jdbc.odbc.JdbcOdbc.SQLAllocStmt(Unknown Source)
> at sun.jdbc.odbc.JdbcOdbcConnection.createStatement(Unknown
Source)
> at sun.jdbc.odbc.JdbcOdbcConnection.createStatement(Unknown
Source)
> at T3.doPost(T3.java:72)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
>
org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503)
> at
>
org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:597)
> at
> org.apache.tomcat.servlets.InvokerServlet.service(InvokerServlet.java:257)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
>
org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503)
> at
> org.apache.tomcat.core.ContextManager.service(ContextManager.java:559)
> at
>
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.java:160)
> at
>
org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java:338
)
> at java.lang.Thread.run(Unknown Source)
>
> Could any one tell me why?
>
> Thank you very much in advance!
>
> Peter
> ==================
>
> Following are source codes for login.html, and T3.java.
> ===================
> login.html:
> ==================
> <html><title></title><head></head>
> <body>
> <center>
> <form method="post" action="http://localhost/servlet/T3" name="login">
> <table>
> <tr><td align=right>
> Username:
> </td><td>
> <input type="text" name="username" size="10" maxlength="20">
> </td></tr>
> <tr><td align=right>
> Password:
> </td><td>
> <input type="text" name="password" size="10" maxlength="20">
> </td></tr>
> <p></p>
> </table>
> <table>
> <tr><td>
> <input type="submit" value="submit">
> </td></tr>
> </table>
> </form>
> </center>
> </body>
> </html>
>
> ===================
> T3.java
> ===================
> import javax.servlet.*;
> import javax.servlet.http.*;
> import java.io.*;
> import java.sql.*;
>
>
> public class T3 extends HttpServlet
> {
> file://database connection is shared by all requests
> static Connection dbConn;
>
> /**
> * init method is called when servlet is initialized.
> * Establishes a database connection when servlet is initially
> * loaded that can be shared across all requests.
> */
> public void init(ServletConfig config) throws
> ServletException
> {
> super.init(config); file://pass ServletConfig to parent
>
> try
> {
> file://load JDBC-ODBC Bridge driver
> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
> file://establish database connection to content using ODBC
> dbConn = DriverManager.getConnection(
> "jdbc:odbc:content");
> }
> catch (ClassNotFoundException e) file://Class.forName throws
> {
> System.out.println("JDBC-ODBC bridge not found!");
> return;
> }
> catch (SQLException e) file://DriverManager.getConnection throws
> {
> System.out.println("SQL exception thrown in init!");
> return;
> }
> }
>
>
> /**
> * doGet method is called in response to a GET request
> */
> public void doPost(HttpServletRequest request,
> HttpServletResponse response) throws ServletException,
> IOException
> {
> int entry = 0;
> String CDID = "0";
> String username;
> String password;
> String inputUsername = request.getParameter("username");
> String inputPassword = request.getParameter("password");
> PrintWriter out = response.getWriter();
> try
> {
> response.setContentType("text/html"); file://returns HTML
>
> file://get handle to output stream
>
> out.println("username="+inputUsername+" password="+inputPassword);
>
> file://create statement
> Statement stat = dbConn.createStatement();
> file://query database for result set
> ResultSet rs = stat.executeQuery(
> "SELECT * FROM " +
> "users");
> ResultSetMetaData meta = rs.getMetaData();
> int cols = meta.getColumnCount();
> out.println("clos=" +cols);
>
> file://generate HTML document to return to client
> out.println("<HTML>");
> out.println("<HEAD><TITLE>User List</TITLE></HEAD>");
> out.println("<BODY>");
> out.println("<H2>Customer List</H2>");
> out.println("<TABLE BORDER=1>"); file://create an HTML table
> out.println("<TR><TH>Username</TH>");
> out.println("<TH>Password</TH>");
> out.println("<TH>CDID</TH></TR>");
> while (rs.next() && (entry != 2)) file://iterate through all records
> {
> file://add a table row for each record
>
> username = rs.getString("Username");
> password = rs.getString("Password");
> CDID = rs.getString("CDID");
> out.println("<TR><TD>" + username + "</TD><TD>"
> + password + "</TD><TD>"
> + CDID + "</TD><TD>"
> + "</TD></TR>");
> if(inputUsername.equals(username) &&
> inputPassword.equals(password))entry++;
> }
> out.println("</TABLE>");
> out.println("</BODY></HTML>");
> file://out.close();
> file://dbConn.close();
> }
> catch (Exception e)
> {
> e.printStackTrace();
> }
> if(entry == 0)
> out.println("Error login!");
>
> file://response.sendRedirect("http://localhost/loginerror.html");
> else if(entry == 1){
>
if(CDID.equals("1"))response.sendRedirect("http://localhost/page1.html");
>
if(CDID.equals("2"))response.sendRedirect("http://localhost/page2.html");
> }
> else
> response.sendRedirect("http://localhost/JSP/wheretogo.jsp");
> }
>
> /**
> * Tells the server about this servlet
> */
> public String getServletInfo()
> {
> return "Sample JDBC servlet";
> }
> }
>
>
>
> _________________________________________________________________________
> Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
>
> Share information about yourself, create your own public profile at
> http://profiles.msn.com.
>
>
___________________________________________________________________________
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the
body
> of the message "signoff SERVLET-INTEREST".
>
> Archives: http://archives.java.sun.com/archives/servlet-interest.html
> Resources: http://java.sun.com/products/servlet/external-resources.html
> LISTSERV Help: http://www.lsoft.com/manuals/user/user.html
>
___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".
Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html