Programação II – Programação para a Web Christopher Burrows Java Server Pages Init doGet (ou equivalente) 3º Pedido 4º Pedido 5º Pedido 6º Pedido Sim Não Não Não Sim Não Sim Não Não Não Sim Não Sim Não Sim Não Sim Não Sim Não Sim Não Sim Não Sim Sim Sim Sim Sim Sim Página alterada Instanciação do Servlet 2º Pedido Servidor Reiniciado Compilação do Servlet Página gerada da primeira vez JSP transformado em Servlet 1º Pedido Java Server Pages Deve-se Duas – – limitar o código que é utilizado. opções: Colocar o código Java todo no JSP; Colocar o código numa classe separada e escrever uma linha no JSP que invoque essa classe (ideal). Java Server Pages Aspectos em que a segunda opção é melhor: – – – – Desenvolvimento; Depuração; Teste; Reutilização de código; Java Server Pages Expressões: – – Sintaxe: <%= expressão %> Exemplo: <%= new java.util.Date() %> Scriptlets: – – Syntaxe: <% código %> Exemplo: <% String s = request.getParameter(“nome”); %> Java Server Pages Declarações: – – Sintaxe: <%! Código %> Exemplo: <%! private int multiplicar(int x, int y) { return x*y; } %> <%= multiplicar(4,5) %> Java Server Pages – Exemplo 1 O seguinte código apresenta uma página com a data/hora actual: <html> <head><title>Data</title></head> <body> <p> A data é <%= new java.util.Date() %></p> </body> </html> Java Server Pages – Exemplo 2 <html> <head><title>Texto</title></head> <body> <% String texto = request.getParameter("texto"); if(texto == null) { %> <p>Não foi inserido texto.</p> <% } else { %> <%=texto %> <% } %> </body> </html> Java Server Pages – Exemplo 3 <html> <head> <title>Multiplicação</title> <%! private int mult(int x, int y) { return x*y; } %> </head> <body> <p>5 x 6 = <%=mult(5, 6) %></p> </body> </html> Java Server Pages Existem – – – – – 5 variáveis predefinidas: request (equivalente ao HttpServletRequest); response (equivalente ao HttpServletResponse); out (equivalente ao PrintWriter); session (equivalente ao HttpSession); application (equivalente ao HttpContext); Exercicios Escrever um JSP que imprima os números de 1 a 10. (scriptlet) Escrever um JSP que imprima o resultado da divisão de dois números inseridos através de um formulário. (scriptlets e declarações)