• Nenhum resultado encontrado

Primeiro exemplo de uso de páginas JSP

N/A
N/A
Protected

Academic year: 2021

Share "Primeiro exemplo de uso de páginas JSP"

Copied!
8
0
0

Texto

(1)

Primeiro exemplo de uso de páginas JSP

Crie um arquivo html com o nome: index, e digite o código abaixo no Eclipse. Salve no seguinte diretório:

C:\apache-tomcat-6.0.33\webapps\ROOT\Prog1\

Voces podem utilizar como editor para escrever o código HTML e jsp, o Dr. Java, o Context que pode ser baixado gratuitamente, ou mesmo o Bloco de Notas, salvado todos os arquivos dentro do diretório ROOT do Tomcat. O ideal e criar uma pasta para o programa que estamos

testando, no entanto quando for fazer o teste da página no Browser, após startar o Tomcat no diretório /Bin deste e carregar nossa página no navegador, da seguinte forma:

http://localhost:8080/Prog1/

Observem que o diretório Prog1 é o nome que dei projeto (diretório), salvo dentro do diretório C:\apache-tomcat-6.0.33\webapps\ROOT\

Índex.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html> <head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Exemplo de IF</title> </head>

<body>

<a href="decisao1.jsp">Exemplo IF</a> </body>

</html>

Crie um segundo arquivo denominado decisao1.jsp e salve no mesmo diretório do arquivo HTML

<%

if(request.getParameter("valor")==null) { %>

<form>

Informe seu nome: <input name="valor"> <br>

<input type="submit" value ="enviar"> </form>

<% } else {

%>

Seu nome é <%=request.getParameter("valor") %> <%

} %>

(2)

Segundo exemplo de JSP

Incluir a linha <a href="decisao2.jsp">Exemplo Switch</a> no arquivos índex.html Você pode dar uma quebra de linha, digitando no final da primeira linha a tag <BR>. Em seguida crie um segundo arquivo JSP denominado, decisao2.jsp, ditando o mesmo no editor de sua preferência e salvando o mesmo dentro da pasta /ROOT/Prog1:

<%

if(request.getParameter("valor")= =null) { %>

<form>

Informe um numero entre 1 e 5: <input name="valor"> <br>

<input type="submit"> </form>

<% } else {

int num = Integer.parseInt(request.getParameter("valor")); switch (num) {

case 1: case 3 : case 5:

out.println("É um número impar"); break;

case 2: case 4:

out.println("É um número par"); break;

default:

out.println("Não é um número entre 1 e 5"); }

} %>

Para podermos expandir nossos exemplos com JSP, abaixo alguns operadores que poderemos utilizar a fim de executar qualquer teste lógico em nossas páginas:

Comparadores: (a= = b) – Igualdade

(a != b) – Não igual ou diferente de (a > b) – Maior que

(a < b) – Menor que

(a >= b) – Maior ou igual a... (a <= b) – Menor ou igual a... Concatenadores lógicos:

&& - Função E (And) – Para retornar verdade, ambas as condições analizades dever ser verdadeiras

(3)

| | - Função ou (Or) – Para retornar verdade, basta que umas das condições analisadas seja verdadeira.

^ - Função ou exclusivo (Or exclusive) – Para retornar verdade, apenas uma das condições deve ser verdadeira.

Ainda analisando o segundo exemplo, podemos notar uma conversão de tipos. Abaixo vejam todas as opções de conversão.

Ao ser enviada a consulta, inicialmente convertemos o parâmetro para um tipo inteiro

(Como por exemplo esta linha do código: int num =

Integer.parseInt(request.getParameter("valor"));), utilizando o método parseInt, da classe Integer. Existem várias outras conversões, como podemos ver abaixo:

 Byte.parseByte(objeto String) – Converte um objeto string para um tipo primitivo byte;

 Short.parseShort(objeto String) – Converte um objeto string para um tipo primitivo short;

 Float.parseFloat(objeto String) – Converte um objeto String para um tipo primitivo float;

 Double.parseDouble(objeto String) – Converte um objeto String para um tipo primitivo Double.

É isso que nosso código decisao1.jsp faz, ele executa um teste lógico nos números, para ver se são ímpares ou pares, tomando uma decisão e apresentando a resposta. Como o parâmetro “valor” é uma string, temos que antes de atribuir esse valor a variável “num” que é inteira, converter a string numérica para um número inteiro, para que não haja erro.

Comando de repetição While

Tanto o comando while quanto o comando do..while são chamados de comandos de repetição indeterminados, pois não sabemos quando o laço irá terminar. Normalmente esses comandos são utilizados em pesquisa de banco de dados.

Vamos utilizar esse exemplo para isso. Antes precisamos criar uma pasta dentro de /ROOT/WEB-INFO, denominada classes e copiar para dentro dela, o driver do mysql denominado mysql-connector-java-5.1.7-bin.jar.

No exemplo abaixo, foi criado um banco de dados no mysql, denominado dvdhome e uma tabela filmes com id do filme autonumeração e um campo filmes tipo caracter com o nome dos filmes. O código abaixo gera uma página JSP que Le o banco de dados e retorna o nome dos filmes.

Crie um banco de dados denominado dvdhome e uma tabela filmes com a seguinte estrutura no mysql:

Create database dvdhome; Use dvdhome;

Create table filmes (

Cod int(11) auto_increment, Filmes varchar(35) not null, Primary key(Cod));

Não se esqueça de incluir no arquivo índex.html a linha: <a href="repeticao1.jsp">Exemlo WHILE</a><br><hr>

(4)

Para chamar a página jsp.

Segue o código da página repeticao1.jsp <%@page import="java.sql.*"%> <% Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dvdhome?userUnicode =true","root",""); Statement stm = con.createStatement();

ResultSet res = stm.executeQuery("select * from filmes"); if(res.next()) {

out.println("Seus usuarios sao: "); out.println("\n");

do {

out.println(res.getString(2));

}while (res.next()); }else {

out.println("Nao existgem registros cadastrados"); }

%>

O aquivo acima funciona da seguinte forma: um objeto ResultSet é uma matriz de dados, onde o primeiro registro da tabela chama-se BOF (Begin of file), ou seja, executamos um comando IF para verificar se existem registros. Caso existam, será mostrada a mensagem Seus filmes são: e, em seguida, o comando DO mostrará todos os registros localizados.

Comando de repetição FOR

O comando de repetição FOR é considerado do tipo comando de repetição

determinado exatamente por termos o domínio dele (tanto quando começa quanto quando ele termina). Ele possui a seguinte estrutura:

FOR (atributo inicial; condição; incremento) {

Instruções a serem repetidas; }

Exemplo utilizando o FOR para cálculo do fatorial de um número. <%

if(request.getParameter("valor") == null) {

%> <form>

(5)

Informe o valor de um número para calcular seu fatorial...:<input name="valor"> <br> <input type="submit"> </form> <% } else { int i = 0;

int num = Integer.parseInt(request.getParameter("valor")); int res = 1;

for(I = num; I > 1; i--) res *= i;

out.println("O fatorial de " + num + " é " + res); }

%>

Abaixo outro exemplo de uso para o laço FOR, usando um texto com uma mensagem:

<body>

<% for (int i = 1; i < 6; i++) { %>

<h<%=i%>>Isto é um teste</h<%=i%>> <% } %>

</body>

Digite o texto acima e salve com o nome testeloop.jsp. Não se esqueça de criar um link na página índex.html para este arquivo.

Vamos para exemplos mais elaborados....

Para o Java, tudo são objetos, atributos, métodos ou classes.

Existe uma classe que cuida das datas e horas que chama-se date e está contida no pacote java.util. Além disso, toda data é armazenada , seu padrão é um inteiro longo, então, precisamos um objeto da classe SimpleDateFormat pertencente ao pacote java.text. Para formatar datas podemos utilizar as seguintes máscaras:

y – ano (2001) M – mês (July 07) d – dia (10) h – hora AM/PM (1 a 12) H – hora (0 a 23) m – Minutos (30) s – segundos (1) S – milisegundos (1)

E – dia da semana (Tuesday) D – Dia do ano (189)

F – dia da semana dentro do mês ( 2 – segunda semana em Julho, por exemplo) w – Dia da semana no ano (27)

W – Dia da semana no mês (2) a – AM/PM (AM)

(6)

k – Hora (1 a 24)

K – Hora AM/PM (0 a 11) ´ - para digitar o texto (às)

Assim se por exemplo, quisermos mostrar uma data em seu formato normal com dia/mês/ano, basta utilizar:

<%=(new SimpleDateFormat(“dd/MM/yyyy”))%> Se quiser formatar a hora, podemos utilizar:

<%=(new SimpleDateFormat(“hh:mm”)).format(new Date())%>

Para praticarmos com as datas, crie uma nova página JSP comeando-a como testedata.jsp e insira os códigos abaixo:

Controle de Formulários (tag form)

Usaremos as tag de form para enviar dados para a página JSP processar. A tag <form> compreende as seguintes tags:

 <input type= “text”> - É a caixa de texto padrão para a entrada de dados, este tipo é o padrão quando a propriedade type for informada.

 <input type = “hidden”> - Objetos do tipo texto que ficam ocultos.

 <input type = “password”> – É a caixa de texto para solicitação de senhas.  <input type = “radio”> – São os objetos tipo escolha apenas um.

 <input type = “checkbox”> - São objetos tipo escolha.  <input type = “button”> - Botões para pressionar.

 <input type = “submit”> - Botão utilizado para submeter o formulário.

 <input type = “reset”> - Botão para apagar os dados dos objetos do formulário.  <textarea rows = n cols – n></textarea> - Caixa de texto com várias linhas

(rows) e várias colunas (cols).

 <select><option></option></selcct> - São listas de seleção (podendo ser padrão ComboBox ou List).

Além disso, duas propriedades são muito importantes para todos esses objetos e nosso uso:

 value – Armazena o valor digitado pelo usuário.

 name – Usado pela JSP para obter o valor de determinada tag. A tag <form> possui a seguinte sintaxe:

<form name=nome action=formação.jsp method=método></form> Onde metodo indica a forma com que os dados serão passados para o formulário.

Por GET que é a forma direta de passagem dos dados, ou por POST que passa todo o formulário.

(7)

Crie um arquivo denominado teste3.html e não esqueça de criar uma referencia para ele na página índex.html

<HTML> <HEAD> <TITLE>Pesquisa Alcoólica</TITLE> </HEAD> <BODY> <H1>Pesquisa Alcoólica</H1>

<FORM action='teste3.jsp' method=post> Você gosta de Beber:

<SELECT name='eBebida'> <OPTION value=0>Vinho</OPTION> <OPTION value=1>Cerveja</OPTION> <OPTION value=2>Whiskey</OPTION> <OPTION value=3>Refrigerante</OPTION> <OPTION value=4>Água</OPTION> </SELECT><BR><BR>

<CENTER><INPUT type='submit' value=' Enviar Resposta '></CENTER> </FORM>

</BODY> </HTML>

Crie uma página jsp, denominada teste3.jsp e digite o código abaixo: <%@page contentType="text/html" import="java.io.*"%>

<html>

<head><title>JSP Page</title></head> <body>

<%

int[] opc = new int[5];

String[] nomOpc = {"Vinho", "Cerveja", "Whiskey", "Refrigerante", "Água"}; String[] nomCor = {"marrom", "azul", "purpura", "ouro", "verde"};

int total = 1; // Total nao pode ser por default 0 String nomArq = "resultado.txt";

// lê o arquivo

File arq = new File(nomArq);

if (arq.exists()) { // arq já foi gravado

BufferedReader br = new BufferedReader(new FileReader(nomArq)); String lin;

int i = 0;

while ((lin = br.readLine()) != null) { opc[i] = Integer.parseInt(lin); total += opc[i];

i++; }

br.close();

(8)

for (int i = 0; i < opc.length; i++) opc[i] = 0;

}

int indice = Integer.parseInt(request.getParameter("eBebida")); opc[indice] += 1;

// monta o gráfico

for (int i = 0; i < opc.length; i++) {

out.println("<img src='image/." + nomCor[i] + ".gif' width=" + ((100 * opc[i])/total) + " height=10>" +

"<img src='' width=" + (100 - ((100 * opc[i])/total)) + " height=10>"); out.println(nomOpc[i] + " - " + opc[i] + " Votos.<br>");

}

// regrava o arquivo

PrintWriter saida = new PrintWriter(new FileWriter(nomArq)); for (int i = 0; i < opc.length; i++)

saida.println(opc[i]); saida.close();

%> </body> </html>

Precisamos também criar 5 arquivos gif que conterão as cores para o gráfico da enquete e salva-los na pasta /ROOT/Prog1/image

Referências

Documentos relacionados

RODOLFO – Júlia, dizer quando eu não saberia porque acredito que sempre fui apaixonado por você?. Não tenho receio de dizer que você sempre foi a mulher da

As dimensões de TI estudadas nessa pesquisa buscou identificar e relação entre Tecnologia da Informação e a entrega da Proposta de Valor Social pela Empresa estudada. A

Construa uma função que receba uma string como parâmetro e devolva outra string com os carateres embaralhados.. Por exemplo:

Concentração de determinada substância, acima da qual podem ocorrer alterações prejudiciais à qualidade do solo e da água subterrânea VALOR DE PREVENÇÃO -

Engenharia de Cardápio. Segundo Rapp, o topo ou o canto superior direito da página 

Varr edura TCP Window ( cont inuação) ACK- win manipulado Não Responde ACK- win manipulado ICMP Tipo 3 Firewall Negando Firewall Rejeitando Scanner de Porta... Var r edur a FI N/

Converte um valor de número ou data para uma string de caractere VARCHAR2 com modelo de formato fmt (que será descrito mais adiante) No caso de um número, o parâmetro

Em seu trabalho, Marina Murta e Nathalia Gonçalves evocam o nome de um dos mais polêmicos artistas do século XX, que participou do despontar da Arte Moderna e de todas as