<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Login</TITLE>
<LINK href="../theme/Master.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY bgcolor="#ffffcc">
<SCRIPT>
      function submitForm(dest){
         document.myForm.action = dest
         document.myForm.submit()
      }
      </SCRIPT>
<CENTER>
<H1>Database Connectivity</H1>
<HR>
</CENTER>
<P>Enter the username &amp; password to connect to the database.<BR>
This username &amp; password should be the one used while creating the database.</P>
<% if(session.getAttribute("error_message") != null) { %>
<P>* Incorrect Login or Password</P>
<%  session.removeAttribute("error_message");
      }  %>
<FORM name="myForm" method="POST" action="../Login/LogonServlet"><INPUT type="hidden" name="command" value='<%=session.getAttribute("final_page") %>'> <INPUT type="hidden" name="previous_page" value="Login/Login.jsp"> <A href="javascript:submitForm('../Login/LogonServlet')">OK</A>
<TABLE border="0">
	<TBODY>
		<TR>
			<TD><FONT color="#993333"> username: </FONT></TD>
			<TD><INPUT name="userID" type="text" size="30" maxlength="40"></TD>
		</TR>
		<TR>
			<TD><FONT color="#993333"> password: </FONT></TD>
			<TD><INPUT name="password" type="password" size="30" maxlength="40"></TD>
		</TR>
		<TR>
			<TD><FONT color="#993333"> drivername: </FONT></TD>
			<TD><INPUT name="driver" type="text" size="30" maxlength="40" value="COM.ibm.db2.jdbc.app.DB2Driver"></TD>
		</TR>
		<TR>
			<TD><FONT color="#993333"> url: </FONT></TD>
			<TD><INPUT name="url" type="text" size="30" maxlength="40" value="jdbc:db2:WSSAMPLE"></TD>
		</TR>
	</TBODY>
</TABLE>
</FORM>
</BODY>
</HTML>
