// Written by Brad Simonin.
// This Java Servlet reads in information from a Java Applet and then 
// loads the data into an Access 97 database using the JDBC:ODBC Bridge.


import java.io.*;
import java.util.*;
import java.sql.*;

import javax.servlet.*;
import javax.servlet.http.*;

import BradsJavaPackages.GuestBook;

public class GuestBookAppletToServlet extends HttpServlet	
{
	public void doPost (HttpServletRequest req, HttpServletResponse res)
	throws ServletException, IOException
	{
	
		boolean Print_The_Line = false;
		res.setContentType("text/html");
		ServletOutputStream out = res.getOutputStream();
		
		String IPAddress = req.getRemoteAddr();
		if (IPAddress.equals("")) 
			IPAddress = null;
		else 
			IPAddress = "'" + IPAddress + "'";
		
		String RemoteHost = req.getRemoteHost();
		String TheProtocol = req.getProtocol();
		int ThePort = req.getServerPort();
		String TheRemoteUser = req.getRemoteUser();
		
		GuestBook AppletData = new GuestBook();
		Enumeration PostData = req.getParameterNames();
		
		while (PostData.hasMoreElements())
		{
				String PostDataCheck = (String)PostData.nextElement();
				PostDataCheck.trim();
				String PostDataValue = req.getParameter(PostDataCheck);
										
				if (PostDataCheck.equals("strName")) 
				{
					AppletData.setName(req.getParameter("strName"));
				}
				
				if (PostDataCheck.equals("strEmail")) 
				{
					AppletData.setEmail(req.getParameter("strEmail"));
				}
				
				if (PostDataCheck.equals("strWebSite")) 
				{
					AppletData.setWebPage(req.getParameter("strWebSite"));
				}
				
				if (PostDataCheck.equals("strCompanyOccupation"))
				{ 
					AppletData.setOccupation(req.getParameter("strCompanyOccupation"));
				}
				
				if (PostDataCheck.equals("strCity")) 
				{
					AppletData.setCity(req.getParameter("strCity"));
				}
				
				if (PostDataCheck.equals("strState")) 
				{
					AppletData.setState( req.getParameter("strState"));
				}
				
				if (PostDataCheck.equals("strComment")) 
				{
					AppletData.setComments( req.getParameter("strComment"));
				}
				
		} // end while loop
								
		PostData = null;
	
		String SqlString;
		
		SqlString = "INSERT INTO Brads_GuestBook " +
				"(Name, Company_Occupation, City, State, E_Mail, Web_Page, " +
			    "Comments, Users_IP_Address, Time_Stamp, Type) " +
				"VALUES (" + AppletData.getName() + ", " + AppletData.getOccupation() + 
				", " + AppletData.getCity() + ", " + AppletData.getState() + 
				", " + AppletData.getEmail() + ", " + AppletData.getWebPage() + 
				", " + AppletData.getComments() + ", " + IPAddress + ", Now(), " +
				"'APP/SRV')";
	
		try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			String url = "jdbc:odbc:Brad";  // Brad is the name of my ODBC DSN
			Connection con;
			Statement stmt;
			con = DriverManager.getConnection(url);
			stmt = con.createStatement();   
			stmt.executeUpdate(SqlString);
			stmt.close();
			con.close();
		}
		catch(SQLException SQL_ex)
		{
			if (!Print_The_Line)
			{
				out.println("SQLException in Servlet: " + SQL_ex.getMessage());
				Print_The_Line = true;
			}
		}
		catch(ClassNotFoundException Class_ex)
		{
			if (!Print_The_Line)
			{
				out.println("ClassException in Servlet: " + Class_ex.getMessage());
				Print_The_Line = true;
			}
		}
		
		if (!Print_The_Line)
		{
			out.println ("Thank you " + AppletData.getDisplayName() + " for signing my Guest Book.");
			Print_The_Line = true;
		}
		
		try
		{
			out.close();
		}
		catch(IOException IO_ex)
		{
			if (!Print_The_Line)
			{
				out.println("IOException in Servlet: " + IO_ex.getMessage());
				Print_The_Line = true;
			}
		}
			
	} // end doPost method
	
} // end BradsGuestBookServlet
