• 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

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

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/

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 -

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

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

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

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

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