Registo de condutor (Protótipo funcional) Página apresentada ao utilizador
HTML da PÁGINA DE REGISTO -------------- <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <meta name="author" content="carlos Sebastião"> <meta name="generator" content="mozilla/4.6 [en] (Win98; I) [Netscape]"> <title>opcao_conduzir_1</title> </head> <body text="#000000" bgcolor="#ffffcc" link="#0000ee" vlink="#551a8b" alink="#ff0000"> <center><b><font face="arial Black"><font color="#ff6600"><font size=+4>turista Virtual II</font></font></font></b></center> <b><font face="arial Black"><font color="#ffcc33"><font size=+4>2 </font></font><font color="#993366"><font size=+1>quero</font><font size=+2> REGISTAR-ME </font><font size=+1> COMO CONDUTOR JÁ!!!</font></font></font></b> <br> <blockquote> <blockquote> <h1> <form METHOD="POST" ACTION="http://turistavirtual.nb.isel.pt:8080/examples/servlet/RegistarMe"> <b><font face="arial Black"><font color="#ffcc33"><font size=+1>nome: </font></font></font></b> <input TYPE=TEXT NAME=Nome SIZE=25></h1> Invocação da classe java: RegistarMe.class <h1><b><font face="arial Black"><font color="#ffcc33"><font size=+1>endereço E-Mail: </font></font></font></b> <input TYPE=TEXT NAME=EnderecoEmail SIZE=20></h1> <h1> <input TYPE=Submit></form></h1> <p><br><b><font face="arial Black"><font color="#333333"><i><blink>aviso</blink></i>: Após este registo será enviada a chave (ID) via E-mail,</font></font></b> <br><b><font face="arial Black"><font color="#333333"> para poder reservar e conduzir o Turista Virtual.</font></font></b></blockquote> <br> <blockquote><b><font face="arial Black"><font color="#ffcc33">exemplo:</font></font></b> <br><b><font face="arial Black"><font color="#ffcc33">nome: Carlos Sebastião</font></font></b> <br><b><font face="arial Black"><font color="#ffcc33">endereço E-Mail: cbastiao@isel.pt</font></font></b> <p><b><font face="arial Black"><font color="#ffcc33">submit</font></font></b></blockquote> </blockquote> </body> </html>
SOURCE SERVLET /* REGISTAR CONDUTOR: */ Dados pedidos ao utilizador: Nome Endereço Email Acções a realizar:.gerar ID aleatorio.inserir novo Condutor na BD (nome,email).enviar email com Nome,Email e ID atribuido import java.io.*; import java.sql.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class RegistarMe extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); //Envia ao WebBrowser o header da página de resposta out.println("<html>"); out.println("<body>"); out.println("<head>"); out.println("<title>"+"registo CONDUTOR TURISTA VIRTUAL"+"</title>"); out.println("</head>"); out.println("<body bgcolor=\"yellow\">"); out.println("<h3>resposta AO REGISTO CONDUTOR TURISTA VIRTUAL</h3>"); //Obter parametros String nome=request.getparameter("nome"); String enderecoemail=request.getparameter("enderecoemail"); String remoteaddr=request.getremoteaddr(); String remotehost=request.getremotehost(); if ( (enderecoemail.compareto("")!=0) && (nome!=null) && (enderecoemail!=null)) { //Pelo menos o campo de Endereço Email está preenchido portanto (neste //momento) posso considerá-los correctos. //1.0 REGISTAR/INSERIR NOVO CONDUTOR na BD (nome,email) DBConnection db = new DBConnection("cbastiao"); //Conexao 'a base de dados IntfDB intf = new IntfDB(); //Objecto de interface com a base de dados //1.1 Gerar ID aleatorio. Random num= new Random(); String ID=""+num.nextInt(999); //Número aleatório de zero a... 999
//1.2 Obter data actual. Calendar calendar = new GregorianCalendar(); java.util.date data = new java.util.date(); calendar.settime(data); String dataactual=""+calendar.get(calendar.year) +"-"+(calendar.get(calendar.month)+1) +"-"+calendar.get(calendar.day_of_month) +" "+calendar.get(calendar.hour_of_day) +":"+calendar.get(calendar.minute) +":"+calendar.get(calendar.second); //1.3 Realizar inserção na base de dados. boolean OK=intf.inserir_condutor(db,nome,enderecoEmail,ID,dataActual); //2.0 ENVIAR EMAIL com Nome,Email e ID atribuido String mailhost="smtp.isel.pt"; String me="cbastiao@isel.pt"; String domain="smtp.isel.pt"; String to=nome+"<"+enderecoemail+">"; String letter; SendMail mailer; if (OK){ letter="o senhor(a) "+nome+" está registado como condutor do Turista Virtual II.\n"; letter=letter+"o seu ID (ou seja a chave de acesso ao Veículo) é... ID="+ID+"\n"; letter=letter+"registo efectuado em "+dataactual+"\n"; letter=letter+"máquina:"+remotehost+"("+remoteaddr+")\n"; letter=letter+"turista VIRTUAL II EM FASE TESTES DE PROTÓTIPOS\n"; letter=letter+"http://www.bigfoot.com/~turistavirtual\n"; mailer = new SendMail(mailhost, domain, me, to, letter); //Enviar um mail também para o administrador cbas new SendMail(mailhost,domain,me,"cbastiao@isel.pt",to+",foi registado com ID=="+ID); out.println("foi enviado um Email para o user (No email consta o ID):\n"); out.println("<br>nome="+nome+"<br>"); else { letter="erro na realização do Registo de condutor\n"; letter=letter+"utilizador já existe...!!!\n\n\n"; letter=letter+"tentativa de Registo efectuado em "+dataactual+"\n"; letter=letter+"máquina:"+remotehost+"("+remoteaddr+")\n"; letter=letter+"http://www.bigfoot.com/~turistavirtual\n"; mailer = new SendMail(mailhost, domain, me, to, letter); new SendMail(mailhost,domain,me,"cbastiao@isel.pt",to+" - Não foi registado."); out.println("erro na realização do Registo de novo condutor.\n"); out.println("foi enviado um Email de Status ao Utilizador.\n"); out.println("<br>nome="+nome+"<br>"); // if ( (enderecoemail.compareto("")!=0) && (nome!=null) && (enderecoemail!=null)) else { out.println("erro: Campo(s) em Branco\n");
//Envia ao WebBrowser o footer da página de resposta out.println("<br>nome="+nome+"<br>"); out.println("</body>"); out.println("</html>"); public void dopost(httpservletrequest request, HttpServletResponse res) throws IOException, ServletException { doget(request,res);