Вы находитесь на странице: 1из 6

Linguagem Java para Web - JSP

Professora Luclia

Estudo Dirigido - Parte 1 Na primeira parte deste tutorial, vamos receber os dados de um formulrio e verificar se os dados foram ou no preenchidos. Se os dados no forem preenchidos, o usurio ser redirecionado para o formulrio, solicitando que o mesmo preencha todos os campos. 1. Primeiro vamos criar um formulrio para que o usurio informe seu login e senha:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <html> <head> <title>...Tela de Login....</title> </head> <body> index.jsp <div id="geral"> <div id="lista">IDENTIFIQUE-SE</div> <div id="login"> <form action="controle.jsp"> <br /><br /><br /> ....Login..... <input type="text" size="20" name="login" /><br /><br /> ....Senha.... <input type="password" size="20" name="Senha" /><br /><br /> <input type="submit" value="Entrar" />&nbsp;&nbsp;&nbsp; <input type="reset" value="Limpar" /> </form> </div> </div> </body> </html>

2. Agora vamos criar uma folha de estilo (CSS) para tornar mais agradvel o visual para o usurio. 3. Crie um diretrio chamado comum e salve o arquivo abaixo dentro dele.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #geral{ position:absolute; left:50%; margin-left:-200px; top:40%; margin-top:-110; } #lista{ background-color:#0000FF; color:white; width:400px; height:20px; position:absolute; top:0px; left:0px; text-align:center; } #login{ background-color:#cccccc; color:green; width:400px; height:200px; position:absolute; top:20px; left:0px; text-align:center; }

estilo.css

4. Acrescente a linha abaixo dentro do <head> do arquivo index.jsp:


<link rel="stylesheet" type="text/css" href="comum/estilo.css" />

5. O seu formulrio dever estar assim:

6. Vamos criar o arquivo controle.jsp, mencionado no index. Ele dever receber o login e a senha enviados pelo formulrio, verificar se ambos os campos esto preenchidos, se no tiver, emitir mensagem de erro.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Controle JSP</title> </head> <body> <% String login = request.getParameter("login"); String senha = request.getParameter("senha"); if (!(login.equals("") || (senha.equals("")))) { out.println("<h1>Dados enviados:</h1>"); out.println("<p> Login: " + login + "</p>"); out.println("<p> Senha: " + senha + "</p>"); } else { out.println("<h1 style=\"color:red;\"> Todos os dados devem ser preenchidos! </h1>"); } %> </body> </html>

Nota: O cdigo acima est misturando cdigo JSP com HTML. Isso no uma boa prtica. A melhor opo seria criar mais uma camada de interface com o usurio. 7. Podemos mostrar a mensagem de erro no prprio index.jsp aps a verificao de dados em branco, por exemplo. Altere o cdigo do controle.jsp, mudando a linha 16 e acrescentando o as linhas 17 e 18, conforme mostrado abaixo:
1 2 3 4 5 6 7 8 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Controle JSP</title> </head> <body> <% String login = request.getParameter("login");

9 10 11 12 13 14 15 16 17 18 19 20 21 22

String senha = request.getParameter("senha"); if (!(login.equals("") || (senha.equals("")))) { out.println("<h1>Dados enviados:</h1>"); out.println("<p> Login: " + login + "</p>"); out.println("<p> Senha: " + senha + "</p>"); } else { String msg = "<h1 style=\"color:red;text-align:center;\"> Todos os dados devem ser preenchidos! </h1>"; session.setAttribute("msg", msg); response.sendRedirect("index.jsp"); } %> </body> </html>

8. Devemos alterar tambm o documento index.jsp. Acrescente as linhas de 21 a 29 nesse documento. Observe que no havia nenhum cdigo JSP na pgina anteriormente, quando fizemos a alterao no foi necessrio alterarmos o nome do arquivo .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 <html> <head> <title>...Tela de Login....</title> <link rel="stylesheet" type="text/css" href="comum/layout.css" /> </head> <body> <div id="geral"> index.jsp <div id="lista">IDENTIFIQUE-SE</div> <div id="login"> <form action="controle.jsp"> <br /><br /><br /> ....Login..... <input type="text" size="20" name="login" /><br /><br /> ....Senha.... <input type="password" size="20" name="senha" /><br /><br /> <input type="submit" value="Entrar" />&nbsp;&nbsp;&nbsp; <input type="reset" value="Limpar" /> </form> </div> </div> <% String mensagem = (String) session.getAttribute("msg"); if (mensagem == null){ mensagem = ""; }else{ mensagem = mensagem; } out.println(mensagem); %> </body> </html>

Estudo Dirigido - Parte 2 Na segunda parte deste tutorial, vamos receber os dados do formulrio j visto e vamos encerrar a sesso caso o usurio no tenha se identificado corretamente, caso contrrio, o usurio ser encaminhado para sua pgina especfica 9. Acrescentando a camada Model aplicao Nesta camada estar presentes a classe JavaBean ou simplesmente o bean. Um componente JavaBeans, ou simplesmente um bean, uma classe Java que, quando chamada por um JSP, por exemplo, segue certas regras a serem observadas nos prximos exemplos. Vamos criar um novo pacote chamado modelo e, dentro dele, vamos criar um bean para que possamos ampliar as funcionalidades do nosso sistema web.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

package modelo; public class Pessoa { private String nome; private String login; private String senha; public Pessoa(){ } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getLogin() { return login; } public void setLogin(String login) { this.login = login; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; } }

Pessoa.java

10. Usando o bean criado: Para usar um bean em uma pgina JSP, necessrio usar a diretiva <%@ page import = pacote.NomeDaClasse %> ou a tag jsp. Para usar uma tag jsp devem ser fornecidos trs atributos: um identificador que prov um nome local para o bean, o nome da classe do bean que usado para instanci-lo e um escopo que especifica o tempo de vida do bean, como mostra o exemplo a seguir. Este exemplo ir verificar se o login e a senha informados so iguais ao usurio e senha requeridos. Se no for, ir encerrar a sesso.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <jsp:useBean class="modelo.Pessoa" id="usuario" scope="session" /> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Controle JSP</title> </head> <body> <% controle.jsp String login = request.getParameter("login"); String senha = request.getParameter("senha"); if (!login.equals("lucelia") || !senha.equals("123456")) { session.invalidate(); response.sendRedirect("menu1.jsp"); } else { usuario.setLogin(login); usuario.setSenha(senha); usuario.setNome("Luclia!!!"); session.setAttribute("usuario", usuario); response.sendRedirect("menu1.jsp"); } %> </body> </html>

11. Se o usurio digitar o login e a senha corretamente, o sistema ir mostrar o extrato da pessoa identificada, caso contrrio ir mostrar apenas a mensagem usurio no autorizado, conforme o cdigo abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 <jsp:useBean id="usuario" class="modelo.Pessoa" scope="session" /> <% if (usuario.getNome() == null) { out.print("<h1>Usuario nao Autorizado!!!</h1>"); } else {

menu1.jsp

%> <html> <head> <link rel="stylesheet" type="text/css" href="comum/layout.css" /> <title>Pagina de Menus</title> </head> <body> <div id="geral"> <div id="lista">Extrato do(a) ${usuario.nome}</div> //Expression language <div id="login" style="text-align:left;"> <br /><br /><br /> CPF.................111111 <br /> Endereo............SQS 910 Sul <br /> Cartao..............33352020<br /> <hr /><br /> Farmacia Sta Maria..150,00<br /> Americanas.com......100,00<br /> Posto Gasol.........78,00<br /> Posto Texaco II.....62,00<br /> Extra...............180,00<br /> <hr /> Total.............R$570,00 </div> </div> </body> </html> <% } %>

12. Podemos ainda criar outra opo: Se o usurio informar a senha de um determinado usurio, mostra o seu extrato, se informar usurio e senha de outro usurio, mostra o extrato desse outro usurio. Se no for de nenhum dos dois, mostra a mensagem usurio no autorizado.

Nota 1: O arquivo controle.jsp dever ser alterado


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <jsp:useBean class="modelo.Pessoa" id="usuario" scope="session" /> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Controle JSP</title> </head> <body> controle.jsp <% String login = request.getParameter("login"); String senha = request.getParameter("senha"); if (login.equals("lucelia") && senha.equals("123456")) { usuario.setLogin(login); usuario.setSenha(senha); usuario.setNome("Luclia!!!"); session.setAttribute("usuario", usuario); response.sendRedirect("menu1.jsp"); } else if (login.equals("maria") && senha.equals("654321")) { usuario.setLogin(login); usuario.setSenha(senha); usuario.setNome("Maria!!!"); session.setAttribute("usuario", usuario); response.sendRedirect("menu2.jsp");

25 26 27 28 29 30 31

} %> </body> </html>

}else{ session.invalidate(); response.sendRedirect("menu.jsp");

Nota 2: Dever ser criado um novo arquivo chamado menu2:


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 <jsp:useBean id="usuario" class="modelo.Pessoa" scope="session" /> <% if (usuario.getNome() == null) { out.print("Usuario nao Autorizado!!!"); } else {

menu2.jsp

%> <html> <head> <link rel="stylesheet" type="text/css" href="comum/layout.css" /> <title>Pagina de Menus</title> </head> <body> <div id="geral"> <div id="lista">Extrato do(a) ${usuario.nome}</div> <div id="login" style="text-align:left;"> <br /><br /><br /> CPF.................2222222 <br /> Endereo............SQN 907 Norte <br /> Cartao..............1111111111<br /> <hr /><br /> Carrefour...........200,00<br /> Submarino.com.......150,00<br /> Restaurante China...50,00<br /> Posto Texaco........60,00<br /> Giraffas............25,00<br /> <hr /> Total.............R$485,00 </div> </div> </body> </html> <% } %>

Exerccios Crie uma aplicao web que solicite ao usurio que informe o seu nome. Construa um bean com os campos: nome, telefone e endereo. Construa um arquivo de controle que compare o nome informado pelo usurio com dois nomes distintos. Se o usurio informar o nome de um dos dois dados comparados, exibir o seu endereo e telefone. Caso contrrio, bloquear o usurio para visualizar qualquer informao.

Вам также может понравиться