‹header›
‹date/time›
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
‹footer›
‹#›
Note que JSP é uma especificação, não um software específico...
A tecnologia JSP possibilita a composição (mistura) de códigos HTML estáticos e dinâmicos.
Fontes oficiais SUN sobre JSP:
http://java.sun.com/products/jsp
http://java.sun.com/products/jsp/download.html  (especificação)
Documentação JSP
http://www.javasoft.com/products/jsp/resources.html
Toda página JSP, quando requisitada pela primeira vez é transformada pelo Contêiner JSP em uma servlet correspondente.
Note que as páginas JSP são compiladas, em vez de serem interpretadas.
Comentário no HTML
<!-– commentário -->
Visível no fonte da página.
Comentário escondido
<%–- commentário --%>
Visível somente no fonte JSP. Normalmente utilizado para documentar o código da scriptlets.
Outros exemplos (utilizando o objeto request)
Método de acesso: <%= request.getMethod() %>
URI: <%= request.getRequestURI() %>
Servidor:<%= request.getServerName() %>
Cliente: <%= request.getRemoteHost() %>
Browser: <%=request.getHeader(“User-Agent”)%>
Objetos de sessão vivem no servidor.
Motivação para objetos de sessão:
Quando um cliente da Americanas.com adiciona um item ao seu carrinho de compras, como o servidor sabe o que já está no carrinho?
Quando o cliente decide fechar a compra e fornecer os dados de pagamento, como o servidor decide que carrinhos previamente criado pertence ao cliente?
SaudarUsuario.jsp
Métodos para ler cabeçalhos de uma requisição HTTP:
getHeader
getHeaders
getHeaderNames
getCookies
getAuthType and getRemoteUser
getContentLength
getContentType
getDateHeader
getIntHeader
Para este exercício, adicione a seguintes linhas ao descritor de contexto da aplicação (arquivo web.xml):
<init-param>
 <param-name>load-class</param-name>
 <param-value> org.gjt.mm.mysql.Driver </param-value>
</init-param>
<jsp:useBean id="wp" class="contest.WinnerPicker" scope="session"/>
<jsp:getProperty name="wp“ property="winningNumber"/>
<jsp:setProperty name=“wp” property=“winningNumber” param=“c” value=“5” />
• An object with page scope is available during the evaluation of this JSP only. This means
that if the request is forwarded to another page in the same application, the object will not
be preserved.
• An object stored with request scope is available during the entire processing of the current
request from a client. This object will be preserved if the request is forwarded to another
page.
• Session-scoped objects are associated with a user session, which is created when a user
first encounters the server and persists until it is explicitly destroyed or the session times
out. Objects with session scope can be accessed at any point during the session.
• Application-scoped objects are available to any page of any user session, for the life of
the application. They are akin to global variables.
data.
getProperty: adicionar uma propriedade a uma página
setProperty: define uma propriedade