// Copyright MageLang Institute; Version $Id: //depot/main/src/edu/modules/Servlets/magercises/FormPostingAndProcessing/solution/CourseDB.java#3 $
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.Enumeration;
import java.util.Hashtable;
public class CourseDB extends HttpServlet
{
static String PostURL = "http://chumley.magelang.com:8080/servlet/CourseDB";
static String HTTPURL = "http://chumley.magelang.com:8080/";
static String UpdateTemplateFileName = "d:/website/tools/servlets/UpdateTemplate.html";
static String AddTemplateFileName = "d:/website/tools/servlets/AddTemplate.html";
String URL = "jdbc:odbc:CourseData";
String username = "";
String password = "";
Connection con = null;
Statement stmt = null;
String UpdateTemplateString = null;
String AddTemplateString = null;
public void init( ServletConfig conf ) throws ServletException
{
super.init(conf);
try
{
connect(URL, username, password);
UpdateTemplateString = getTemplateFile(UpdateTemplateFileName);
// AddTemplateString = getTemplateFile(AddTemplateFileName);
}
catch (Exception e)
{
throw( new UnavailableException( this, "Failed connecting to Course DB" ) );
}
}
protected void connect( String URL, String username, String password )
throws SQLException, ServletException
{
loadDriver();
con = DriverManager.getConnection (URL, username, password);
stmt = con.createStatement();
}
private void loadDriver() throws ServletException
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (Exception e)
{
throw new ServletException("Failed to load JDBC/ODBC driver.");
}
}
// Form processing ends up here via a POST from a form.
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
ServletOutputStream out = res.getOutputStream();
// set content type and other response header fields first
res.setContentType("text/html");
String cmd = req.getParameterValues("CMD")[0];
try
{
if ( cmd.equals("ADD") )
{
openHTML(out, "Added Course");
addRecord(req, out);
}
else
{
String[] ids = req.getParameterValues("courseID");
if ( ids==null )
{
out.println("You did not select a course.
");
}
else if ( cmd.equals("UPDATE") )
{
openHTML(out, cmd+" RECORD");
String id = ids[0];
showRecordUsingTemplate(out, id, UpdateTemplateString);
}
else if ( cmd.equals("COMMIT CHANGES") )
{
openHTML(out, cmd);
String id = ids[0];
updateRecord(req, out, id);
}
else if ( cmd.equals("SHOW") )
{
try
{
openHTML(out, "");
showRecord(out, ids[0]);
}
catch (SQLException sql)
{
out.println("This course has been deleted
");
out.println("Do a refresh/reload on main database entry point to refresh list of courses");
}
}
else if ( cmd.equals("DELETE") )
{
openHTML(out, "Deleted Course");
try
{
showRecord(out, ids[0]);
stmt = con.createStatement();
stmt.executeUpdate("DELETE FROM Courses WHERE ID="+ids[0]+";");
}
catch (SQLException sql)
{
out.println("This course has already been deleted
");
out.println("Do a refresh/reload on main database entry point to refresh list of courses");
}
}
}
}
catch (SQLException e)
{
out.println("SQL error: '"+e.getMessage()+"' during command "+cmd);
}
catch (Exception a)
{
out.println("general error: '"+a.getMessage()+"' during command "+cmd);
}
closeHTML(out);
}
// Get produces a list of all courses: the start up page
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
ServletOutputStream out = res.getOutputStream();
// set content type and other response header fields first
res.setContentType("text/html");
// then write the data of the response
out.println("
"); out.println("You may also ADD A RECORD."); } catch (SQLException e) { throw new UnavailableException(this, "cannot gen list of courses"); } out.println("