JSP JavaServer Pages Alcides Calsavara alcides.

22
JSP JavaServer Pages Alcides Calsavara www.ppgia.pucpr.br/~alcid es

Transcript of JSP JavaServer Pages Alcides Calsavara alcides.

Page 1: JSP JavaServer Pages Alcides Calsavara alcides.

JSPJavaServer Pages

Alcides Calsavara

www.ppgia.pucpr.br/~alcides

Page 2: JSP JavaServer Pages Alcides Calsavara alcides.

Referências

• Professional JSP

Karl Avedal e outros

Wrox Press, May 2000

• JavaServer Pages

Hans Bergsten

O’Reilly, December 2000

Page 3: JSP JavaServer Pages Alcides Calsavara alcides.

Links

• SUN JSP

• Jakarta Group (TomCat Web Server)

• cetus JSP

Page 4: JSP JavaServer Pages Alcides Calsavara alcides.

Definição

JSP é uma tecnologia que permite a criação de páginas web que exibem um conteúdo gerado dinamicamente.

Uma página JSP usa tags XML e scriplets escritos em Java para encapsular a lógica que gera o conteúdo exibido pela página.

Page 5: JSP JavaServer Pages Alcides Calsavara alcides.

Mecanismo Básico

Navegador

Usuário fornece um valorno formulário e pressionao botäo de submissão

Resposta é exibida najanela do navegador

Servidor

Interpreta JSP e usadados do formuláriopara gerar a resposta

TEMPO

Envia requisição de uma páginaJSP ao servidor, incluindo dadosdo formulário

Envia resposta ao navegadorcontendo código HTML

Page 6: JSP JavaServer Pages Alcides Calsavara alcides.

Exemplo Simples

ExemploSimples.html

FORM HTML

ExemploSimples.jsp

HTML + JavaACTION

Page 7: JSP JavaServer Pages Alcides Calsavara alcides.

ExemploSimples.html<HTML><HEAD><TITLE> Exemplo Simples de JSP </TITLE></HEAD>

</BODY>

<P> Quantas vezes? </P>

<FORM METHOD="GET" ACTION= "ExemploSimples.jsp" ><INPUT TYPE="TEXT" SIZE="2" NAME="numvezes"><INPUT TYPE="SUBMIT"></FORM>

</BODY></HTML>

Page 8: JSP JavaServer Pages Alcides Calsavara alcides.

ExemploSimples.jsp<%@ page language = "java" %>

<HTML><HEAD><TITLE> Exemplo Simples de JSP </TITLE></HEAD><BODY><P><% int numTimes = Integer.parseInt( request.getParameter( "numvezes" ) );

for (int i = 0; i < numTimes; i++) {%>

janeiro<BR><% }%></P></BODY></HTML>

Page 9: JSP JavaServer Pages Alcides Calsavara alcides.

JSP e Servlets

Cliente

Servidor Web

Documentos ComunsMáquina Servlet

Tradutor JSP

Documentos JSP

Servelts compilados

Requisição HTTP Resposta HTTP

Page 10: JSP JavaServer Pages Alcides Calsavara alcides.

J2EEJava 2 Enterprise Edition

XML/HTML

Applet

ApplicaçãoCliente

ServidorWeb

TradutorJSP

MáquinaServlets

JDBC

JavaMail

JNDI

RMI

IIOP

Banco deDados

Servidorde Mail

Serviço deDiretório

AplicaçãoJava

AplicaçãoCORBA

Beans

CLIENTE LÓGICA DADOS

Page 11: JSP JavaServer Pages Alcides Calsavara alcides.

J2EE

• Interação via HTTP com servidores Web• Suporte a sessões• Suporte a transação• Representação de dados como objetos• Disponibilidade das APIs de Java para

acesso a dados• Flexibilidade na combinação de JSP e XML

para a produção de páginas dinâmicas

Page 12: JSP JavaServer Pages Alcides Calsavara alcides.

JSP versus CGI

• JSP mantém estado no servidor entre sessões

• Cria uma nova thread para cada requisição• Não precisa ser carregado toda vez, depois

de iniciado• Executa em uma JVM previamente

carregada como uma extensão de um servidor Web

Page 13: JSP JavaServer Pages Alcides Calsavara alcides.

JSP versus ASP

• JSPs são interpretados apenas uma vez (traduzidos para byte-code) e reinterpretados somente quando o arquivo é modificado, o que possibilita melhor desempenho na média

• JSPs executam nos principais servidores Web• JSPs permitem melhor separação entre código e

dados através de beans e bibliotecas de tags.

Page 14: JSP JavaServer Pages Alcides Calsavara alcides.

Exemplo de Scriplet<%@page language = "java" %>

<HTML><HEAD><TITLE> Exemplo de Scriplet </TITLE></HEAD><BODY>

<H1> Exemplo de Scriptlet </H1>

<%for (int i=0; i<10; i++){ out.print( "<b> Rodada numero: " + i + "</b>" ); out.print( "<p>" ); System.out.println( “Execucao ” + i );}

%>

</BODY></HTML>

Page 15: JSP JavaServer Pages Alcides Calsavara alcides.

Exemplo de expressão<%@page language = "java" %>

<HTML><HEAD><TITLE> Exemplo de Expressao </TITLE></HEAD><BODY>

<H1> Contador de acessos </H1>

<%! int i = 0; %>

<%i++;

%>

Contagem de acesso: <%= "exatamente " + i + " vezes" %>

</BODY></HTML>

Page 16: JSP JavaServer Pages Alcides Calsavara alcides.

Exemplo de beansExemploBeans.html

FORM HTML

ExemploBeans.jsp

HTML + JavaACTION

SpellCheck.class (bean)

Page 17: JSP JavaServer Pages Alcides Calsavara alcides.

ExemploBeans.html<HTML><HEAD><TITLE> Exemplo de Beans </TITLE></HEAD><BODY bgcolor="#FFFFFF">

<FORM ACTION="ExemploBeans.jsp" method="POST" >Forneca uma palavra:<INPUT TYPE="text" name="word" ><select name="mode" > <option value="1" selected>Reverse</option> <option value="2" >Spellcheck</option></select><input type="submit" name="Go" value="Submit" ></FORM>

</BODY></HTML>

Page 18: JSP JavaServer Pages Alcides Calsavara alcides.

ExemploBeans.jsp<%@page language = "java" %>

<jsp:useBean id="help" scope="request" class="ACalsavara.B.SpellCheck" /><jsp:setProperty name="help" property="*" />

<HTML><HEAD><TITLE> Exemplo de Bean </TITLE></HEAD><BODY>

Voce forneceu a entrada: <b> <%= request.getParameter("word") %> <b> <br>A correspondente saida eh: <br><%= Integer.parseInt( request.getParameter( "mode" ) ) == 1

? help.reverse( ) : " " + help.check( ) %>

</BODY></HTML>

Page 19: JSP JavaServer Pages Alcides Calsavara alcides.

SpellCheck.java package ACalsavara.B;

public class SpellCheck { private String word; public SpellCheck( ) { } public String reverse( ) { return (new StringBuffer (word).reverse( ) ).toString( ); } public boolean check( ) { return true; } public String getWord( ) { return word; } public void setWord( String aWord ) { word = aWord; } }

Page 20: JSP JavaServer Pages Alcides Calsavara alcides.

Exemplo de beans - instalaçãowebapps

ACalsavara

B

Espec2009

ExemploBeans.htmlExemploBeans.jsp

Web-inf

classesACalsavara

BSpellCheck.class

Page 21: JSP JavaServer Pages Alcides Calsavara alcides.

Diretiva page - exemplo

<%@ page language=“java” import=“java.rmi.*,java.util.*” session=“true” buffer=“12kb” autoFlush=“true” info=“minha pagina preferida” erroPage=“Error.jsp” isErrorPage=“false” isThreadSafe=“false” %>

<html><body><h1>exemplo de diretivas</h1><body></html>

Page 22: JSP JavaServer Pages Alcides Calsavara alcides.

Diretiva include

Permite a inclusão de um arquivo em um local específicodo arquivo JSP.

O arquivo incluído não pode ser outra página dinâmica.

Exemplo:

<% include file=“copyright.html” %>