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 = " ";
String time = rs.getString("TIMES");
if (time
== null) time = " ";
String instructor = rs.getString("INSTRUCTOR");
if
(instructor == null) instructor = " ";
String room = rs.getString("ROOM");
if (room
== null) room = " ";
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());
}
} }