Servlets (part 3)

 

ex1.htm

 

<HTML>

<BODY>

<FORM ACTION="http://192.168.1.103:8988/Application1-Project1-context-root/ex1" METHOD="POST">

Enter the username: <input type=text name="username">

<P>

Enter the password: <input type=password name="password">

<P>

<input type = submit value="Submit">

</form>

</body></HTML>

 

 

 


ex1.java (No different than ex10.java from part 2 example)

 

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.sql.*;

 

public class ex1 extends HttpServlet {

 

    PreparedStatement stmt;

    PreparedStatement stmt2;

    Statement stmt3;

    PreparedStatement stmt4;

 

   public void init( ServletConfig config )

      throws ServletException

   {

       super.init( config );

       String url = "jdbc:odbc:registrar";

       Connection con;

       String query =

         "select COUNT(*) as MATCHES from USERS where USERID like ? " +

                      " and PASSWORD like ?;";

       String query2 =

          "select COUNT(*) from USERROLES where ROLEID = 1 and " +

                       " USERID like ?;";

       try

       {

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

       }

       catch(java.lang.ClassNotFoundException e)

       {

        System.err.print("ClassNotFoundException: ");

        System.err.println(e.getMessage());

       }

       try

       {

           con = DriverManager.getConnection(url, "", "");

           stmt = con.prepareStatement(query);

           stmt2 = con.prepareStatement(query2);

      }

       catch(SQLException ex)

       {

          System.err.println("SQLException: " + ex.getMessage());

       }

   }

 

   public void doPost( HttpServletRequest request,

                      HttpServletResponse response )

      throws ServletException, IOException

   {

      String input1 = request.getParameter( "username" );

      String input2 = request.getParameter( "password" );

      PrintWriter output;

      response.setContentType( "text/html" ); 

      output = response.getWriter();          

      output.println( "<HTML><HEAD><TITLE>\n");

      output.println( "Add a Course\n" );

      output.println( "</TITLE></HEAD><BODY>\n" );

 

      try

      {

        stmt.setString(1, input1);

        stmt.setString(2, input2);

        ResultSet rs = stmt.executeQuery();

        rs.next();

        int match_count = rs.getInt("MATCHES");

        if (match_count > 1)

        {

            output.println("Too many matches!");          

        }

        else if (match_count == 0)

          output.println("Not a legal username/password");

        else

        {

            stmt2.setString(1, input1);

            ResultSet rs2 = stmt2.executeQuery();           

            rs2.next();

            int matches = rs2.getInt(1);

            if (matches != 1)

            {

              output.println("Not a student!");  

            }

            else

            {

                ServletContext context = getServletContext();

                RequestDispatcher dispatcher =

                       context.getRequestDispatcher("/ex2");

                dispatcher.forward(request, response);

            }

        }

        output.println( "</BODY></HTML>" );

        output.close();   

      }

      catch(SQLException ex)

      {

         System.err.println("SQLException: " + ex.getMessage());

      }

   }

 

}

 


ex2.java

 

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.sql.*;

 

public class ex2 extends HttpServlet {

 

    Statement stmt3;

    PreparedStatement stmt4;

 

   public void init( ServletConfig config )

      throws ServletException

   {

       super.init( config );

       String url = "jdbc:odbc:registrar";

       Connection con;

       String query4 = "select FNAME, LNAME from USERS where USERID like ?;";

       try

       {

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

       }

       catch(java.lang.ClassNotFoundException e)

       {

        System.err.print("ClassNotFoundException: ");

        System.err.println(e.getMessage());

       }

       try

       {

           con = DriverManager.getConnection(url, "", "");

           stmt3 = con.createStatement();

           stmt4 = con.prepareStatement(query4);

       }

       catch(SQLException ex)

       {

          System.err.println("SQLException: " + ex.getMessage());

       }

   }

 

   public void doPost( HttpServletRequest request,

                      HttpServletResponse response )

      throws ServletException, IOException

   {

      HttpSession session = request.getSession(true);

      String input1 = request.getParameter( "username" );

      session.setAttribute("username", input1);

      PrintWriter output;

      response.setContentType( "text/html" ); 

      output = response.getWriter();          

      output.println( "<HTML><HEAD><TITLE>\n");

      output.println( "Add a Course\n" );

      output.println( "</TITLE></HEAD><BODY>\n" );

 

      try

      {

          String query3 = "select CRN, COURSE, SECTION, DATES, TIMES, INSTRUCTOR, ROOM " +

                          "from OFFERINGS;";

          ResultSet rs = stmt3.executeQuery(query3);

          output.println("<P>Pick a section");

          stmt4.setString(1, input1);

          ResultSet rs4 = stmt4.executeQuery();           

          rs4.next();

          output.println(", " + rs4.getString("FNAME") + " " +

                             rs4.getString("LNAME"));

          output.println("<FORM ACTION=\"http://192.168.1.103:8988/Application1-Project1-context-root/ex3\" METHOD=\"POST\">");

          output.println("<TABLE BORDER='1'>");

          output.println("<TR>");

          output.println("<TH>Choice</TH>");

          output.println("<TH>CRN</TH>");

          output.println("<TH>Course</TH>");

          output.println("<TH>Section</TH>");

          output.println("<TH>Date</TH>");

          output.println("<TH>Time</TH>");

          output.println("<TH>Instructor</TH>");

          output.println("<TH>Room</TH>");

          output.println("</TR>");

          while (rs.next())

          {

             String crn = rs.getString("CRN");

             String course = rs.getString("COURSE");

             String section = rs.getString("SECTION");

             String date = rs.getString("DATES");

             if (date == null) date = "&nbsp;";

             String time = rs.getString("TIMES");

             if (time == null) time = "&nbsp;";

             String instructor = rs.getString("INSTRUCTOR");

             if (instructor == null) instructor = "&nbsp;";

             String room = rs.getString("ROOM");

             if (room == null) room = "&nbsp;";

             output.println("<TR>");

             output.println("<TD><input type='checkbox' name='crn" +

                             crn + "' value='" + crn + "'></TD>");

             output.println("<TD>" + crn + "</TD>");

             output.println("<TD>" + course + "</TD>");

             output.println("<TD>" + section + "</TD>");    

             output.println("<TD>" + date + "</TD>");

             output.println("<TD>" + time + "</TD>");  

             output.println("<TD>" + instructor + "</TD>");

             output.println("<TD>" + room + "</TD>");  

             output.println("</TR>");

          }

          output.println("</TABLE>");

          output.println("<input type = submit value=\"Submit\">");

          output.println("</FORM>");

          output.println( "</BODY></HTML>" );

          output.close();   

      }

      catch(SQLException ex)

      {

         System.err.println("SQLException: " + ex.getMessage());

      }

   }

 

}

 

 

ex3.java

 

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.sql.*;

 

import java.util.Enumeration;

import java.util.GregorianCalendar;

 

public class ex3 extends HttpServlet {

    Statement stmt;

 

    public void init( ServletConfig config )

      throws ServletException

    {

       super.init( config );

       String url = "jdbc:odbc:registrar";

       Connection con;

       try

       {

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

       }

       catch(java.lang.ClassNotFoundException e)

       {

        System.err.print("ClassNotFoundException: ");

        System.err.println(e.getMessage());

       }

       try

       {

           con = DriverManager.getConnection(url, "", "");

           stmt = con.createStatement();

       }

       catch(SQLException ex)

       {

          System.err.println("SQLException: " + ex.getMessage());

       }

    }

 

    public void doPost( HttpServletRequest request,

                      HttpServletResponse response )

      throws ServletException, IOException

    {

      HttpSession session = request.getSession(true);

      String input2 = (String)session.getAttribute("username");

      PrintWriter output;

      response.setContentType( "text/html" ); 

      output = response.getWriter();          

      output.println( "<HTML><HEAD><TITLE>\n");

      output.println( "Add a Course\n" );

      output.println( "</TITLE></HEAD><BODY>\n" );

      GregorianCalendar today = new GregorianCalendar();

      String today_date = (today.get(GregorianCalendar.MONTH) + 1) + "/" +

                            today.get(GregorianCalendar.DATE) + "/" +

                            today.get(GregorianCalendar.YEAR);

      try

      {

        Enumeration e = request.getParameterNames();

        while (e.hasMoreElements())

        {

          String paramName = (String)e.nextElement();

          if (paramName.startsWith("crn"))

          {

            String input1 = request.getParameter(paramName);

            ResultSet result1 = stmt.executeQuery(

                                     "select COUNT(*) from ENROLLMENTS"

                                      + " where CRN = " + input1  +

                                      " and USERID ='" + input2 + "';");

            result1.next();

            boolean ok1 = (result1.getInt(1) == 0);

            ResultSet result2 = stmt.executeQuery(

                                        "select COUNT(*) from OFFERINGS "

                                        + "where CRN = " + input1 + ";");

            result2.next();     

            boolean ok2 = (result2.getInt(1) == 1);

            ResultSet result3 = stmt.executeQuery(

                                          "select ENROLLMAX - ENROLLCURRENT "

                                              + "from OFFERINGS where CRN = "

                                              + input1 + ";");

            result3.next();     

            boolean ok3 = (result3.getInt(1) >= 1);

            if (ok1 && ok2 && ok3)

            {

                stmt.executeUpdate("insert into ENROLLMENTS values(" +

                               input1 + ",'" + input2 + "','" + today_date +

                               "','');");

                stmt.executeUpdate("update OFFERINGS set ENROLLCURRENT = " +

                                 "ENROLLCURRENT + 1 WHERE CRN = "

                                 + input1 + ";");

                output.println("<P>Insert made into CRN " + input1 );

            }

           else if (! ok1)

             output.println("<P>Already registered for " + input1);

           else if (! ok2)

             output.println("<P>No such CRN " + input1);

           else if (! ok3)

             output.println("<P>" + input1 + " is full");

          }

        }

        output.println( "</BODY></HTML>" );

        output.close();   

      }

      catch(SQLException ex)

      {

         System.err.println("SQLException: " + ex.getMessage());

      }

    }  }