JSP JavaServer Pages Alcides Calsavara www.ppgia.pucpr.br/~alcid es
Apr 17, 2015
JSPJavaServer Pages
Alcides Calsavara
www.ppgia.pucpr.br/~alcides
Referências
• Professional JSP
Karl Avedal e outros
Wrox Press, May 2000
• JavaServer Pages
Hans Bergsten
O’Reilly, December 2000
Links
• SUN JSP
• Jakarta Group (TomCat Web Server)
• cetus JSP
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.
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
Exemplo Simples
ExemploSimples.html
FORM HTML
ExemploSimples.jsp
HTML + JavaACTION
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>
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>
JSP e Servlets
Cliente
Servidor Web
Documentos ComunsMáquina Servlet
Tradutor JSP
Documentos JSP
Servelts compilados
Requisição HTTP Resposta HTTP
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
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
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
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.
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>
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>
Exemplo de beansExemploBeans.html
FORM HTML
ExemploBeans.jsp
HTML + JavaACTION
SpellCheck.class (bean)
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>
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>
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; } }
Exemplo de beans - instalaçãowebapps
ACalsavara
B
Espec2009
ExemploBeans.htmlExemploBeans.jsp
Web-inf
classesACalsavara
BSpellCheck.class
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>
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” %>