Você está na página 1de 16

CENTRO FEDERAL DE EDUCAO TECNOLOGICA DO RN

11
Introduo ao JSP
Prof. Alessandro J. de Souza

AULA

O que JSP?
JavaServer Page JSP uma tecnologia que permite servir contedo dinmico em Web Sites. O processamento de JSP passa por uma camada adicional onde a pgina transformada (compilada) em um servlet. Tags Java dentro de pgina com tags HTML.

Ciclo de Vida

Exemplo JSPs
A forma mais simples de criar documentos JSP, mudar a extenso de um arquivo HTML para .jsp
Arquivo.jsp <html> <head> <title>Pgina JSP</title> </head> <body bgcolor="#FFFFFF"> Hello Jsp </body> </html>

JSP compilado para Servlet


package not.used; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; public final class aquivo_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent { private static java.util.Vector _jspx_dependants; public java.util.List getDependants() { return _jspx_dependants; } public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { JspFactory _jspxFactory = null; PageContext pageContext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; JspWriter _jspx_out = null; PageContext _jspx_page_context = null; Continuao.....

JSP compilado para Servlet


try { _jspxFactory = JspFactory.getDefaultFactory(); response.setContentType("text/html"); pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); out.write("<html>\r\n\r\n<head>\r\n\t<title>Pgina JSP</title>\r\n</head>\r\n\r\n<body bgcolor=\"#FFFFFF\">\r\n Hello Jsp\r\n</body>\r\n\r\n</html>\r\n"); } catch (Throwable t) { if (!(t instanceof SkipPageException)){ out = _jspx_out; if (out != null && out.getBufferSize() != 0) out.clearBuffer(); if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); } } finally { if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context); } } } Continuao.....

Elementos JSP
Todos so interpretados no servidor
comentrios: <%-- ... --%> expresses: <%= ... %> declaraes: <%! ... %> scriptlets: <% ... %> diretivas: <%@ ... %>

Comentrios
Comentrios HTML
<!-- no servem para comentar JSP o texto ignorado pelo browser mas no pelo conteiner -->

Comentrios JSP
<%-- Texto, cdigo Java, e HTML so ignorados pelo servidor --%>

Pode-se tambm usar comentrios Java quando dentro de scriptlets, expresses ou declaraes:
<% cdigo JSP ... /* comentrio de varias linhas */ // comentrio de linha ... cdigo JSP %>

Expresses
Quando processadas, retornam um valor que inserido na pgina no lugar da expresso Sintaxe: <%= expresso %> Equivale a out.print(expresso) No terminar em ponto-e-vrgula Todos os valores resultantes das expresses so convertidos em String antes de serem redirecionados sada padro

<html> <head> <title>Pgina JSP</title> </head> <body bgcolor="#FFFFFF"> <%=(int)(Math.random()*10 %> </body> </html>

Declaraes
Permitem a declarao de variveis e mtodos em uma pgina e so teis para declarar:
Variveis e mtodos de instncia (pertencentes ao servlet) variveis e mtodos estticos (pertencentes classe do servlet) Sintaxe: <%! declarao %>

10

<%! String nome = Alessandro; String sobrenome = Souza; %> <html> <head> <title>Pgina JSP</title> </head> <body bgcolor="#FFFFFF"> <%= nome %> </body> </html>

Scriptlets
Blocos de cdigo que so executados sempre que uma pgina JSP processada
Correspondem a insero de seqncias de instrues no mtodo _jspService() do servlet gerado Sintaxe: <% instrues Java; %>

11

<%! String [] nomes = {Alessandro,Carlos,Andre}; %> <html> <head> <title>Pgina JSP</title> </head> <body bgcolor="#FFFFFF"><h1>Lista de Nomes</h1> <table> <th>Nome<th> <%for(int i=0; i<nomes.length; i++){%> <tr><td> <%= nomes[i]%> </td></tr> <% } %> </table> </body> </html>

JSP em web.xml
Aspectos JSP que podem ser configurados no web.xml Pgina Inicial Mapeamentos de URL Parmetros de iniciao

12

Pgina Inicial
Arquivo apresentado ao usurio se nenhuma pgina especfica for solicitada.
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

13

<web-app> <servlet> ... </servlet> <servlet-mapping> ... </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp<welcome-file> </welcome-file-list> </web-app>

web.xml

Mapeamento de URL
Mapear pginas JSP para URLs especficas.
http://maquina:[port]/app/index.jsp = http://maquina:[port]/app/alias
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>PaginaJsp</servlet-name> <jsp-file>/index.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>PaginaJsp</servlet-name> <url-pattern>/alias</url-pattern> </servlet-mapping> </web-app>

14

web.xml

Parmetros de Inicializao
Passar parametros para a JSP a partir do arquivo web.xml
<html> <body> <?xml version="1.0" encoding="ISO-8859-1"?> Parametro retirado do web.xml <!DOCTYPE web-app <%= PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" pagecontext.getServletConfig(). getInitParameter(nome) "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> %> </body>

15

jsp

</html> <servlet-name>PaginaJsp</servlet-name> <jsp-file>/index.jsp</jsp-file> <init-param> <param-name>nome</param-name> <param-value>alessandro</param-value> </init-param > </servlet> </web-app>

web.xml

Exerccio
Tarefa de Sala de aula Crie uma aplicao web para os cdigos desta aula. Refaa a lista de exerccios passada no 1 Bimestre com JSPs. Tarefa de casa

16