Login Servlets : Database « Servlets « Java





Login Servlets

/*

Java Programming with Oracle JDBC
by Donald Bales 
ISBN: 059600088X
Publisher: O'Reilly

*/



import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.UnavailableException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Login extends HttpServlet {

  public void init(ServletConfig config) throws ServletException {
    super.init(config);
    try {
      // load the driver
      Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    } catch (ClassNotFoundException e) {
      throw new UnavailableException(
          "Login init() ClassNotFoundException: " + e.getMessage());
    } catch (IllegalAccessException e) {
      throw new UnavailableException(
          "Login init() IllegalAccessException: " + e.getMessage());
    } catch (InstantiationException e) {
      throw new UnavailableException(
          "Login init() InstantiationException: " + e.getMessage());
    }
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head>");
    out.println("<title>Login</title>");
    out.println("</head>");
    out.println("<body>");

    HttpSession session = request.getSession();
    Connection connection = (Connection) session.getAttribute("connection");
    if (connection == null) {
      String userName = request.getParameter("username");
      String password = request.getParameter("password");
      if (userName == null || password == null) {
        // prompt the user for her username and password
        out.println("<form method=\"get\" action=\"Login\">");
        out.println("Please specify the following to log in:<p>");
        out.println("Username: <input type=\"text\" "
            + "name=\"username\" size=\"30\"><p>");
        out.println("Password: <input type=\"password\" "
            + "name=\"password\" size=\"30\"><p>");
        out.println("<input type=\"submit\" value=\"Login\">");
        out.println("</form>");
      } else {
        // create the connection
        try {
          connection = DriverManager.getConnection(
              "jdbc:oracle:thin:@dssw2k01:1521:orcl", userName,
              password);
        } catch (SQLException e) {
          out.println("Login doGet() " + e.getMessage());
        }
        if (connection != null) {
          // store the connection
          session.setAttribute("connection", connection);
          response.sendRedirect("Login");
          return;
        }
      }
    } else {
      String logout = request.getParameter("logout");
      if (logout == null) {
        // test the connection
        Statement statement = null;
        ResultSet resultSet = null;
        String userName = null;
        try {
          statement = connection.createStatement();
          resultSet = statement
              .executeQuery("select initcap(user) from sys.dual");
          if (resultSet.next())
            userName = resultSet.getString(1);
        } catch (SQLException e) {
          out.println("Login doGet() SQLException: " + e.getMessage()
              + "<p>");
        } finally {
          if (resultSet != null)
            try {
              resultSet.close();
            } catch (SQLException ignore) {
            }
          if (statement != null)
            try {
              statement.close();
            } catch (SQLException ignore) {
            }
        }
        out.println("Hello " + userName + "!<p>");
        out.println("Your session ID is " + session.getId() + "<p>");
        out
            .println("It was created on "
                + new java.util.Date(session.getCreationTime())
                + "<p>");
        out.println("It was last accessed on "
            + new java.util.Date(session.getLastAccessedTime())
            + "<p>");
        out.println("<form method=\"get\" action=\"Login\">");
        out.println("<input type=\"submit\" name=\"logout\" "
            + "value=\"Logout\">");
        out.println("</form>");
      } else {
        // close the connection and remove it from the session
        try {
          connection.close();
        } catch (SQLException ignore) {
        }
        session.removeAttribute("connection");
        out.println("You have been logged out.");
      }
    }
    out.println("</body>");
    out.println("</html>");
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException {
    doGet(request, response);
  }
}
           
       










Related examples in the same category

1.Servlets Database Query
2.Using JDBC in Servlets
3.Cached Connection Servlet
4.Transaction Connection Servlet
5.Session Login JDBC
6.JDBC and Servlet
7.Database and Servlet: Database MetaData
8.Database and Servlet: Store procedure
9.Database transaction
10.Typical database commands
11.Process a raw SQL query; use ResultSetMetaData to format it
12.See Account
13.Guest Book Servlet
14.Dedicated Connection Servlet
15.OCCI Connection Servlet
16.Get Column Names From ResultSet
17.Display Clob Servlet
18.Delete Blob From Servlet
19.Delete Clob From Servlet
20.Display Blob Servlet
21.Delete Clob From Oracle in a Servlet
22.Insert Clob to MySql Servlet
23.Update Clob data stored in MySql from a Servlet