2.1 Diretivas JSP
Como descobrimos que o arquivo JSP é convertido em um servlet normal, você pode escrever código Java normal nele. E neste código Java, você pode usar várias classes (Math do exemplo). Isso é ainda melhor! Mas podemos ver que todo o código foi movido para um doGet()
método servlet. E isso levanta imediatamente várias questões:
- Como fazer para que o código seja movido para o método
doPost()
? - Como adicionar seu próprio código ao método
init()
? - Como no final registrar as importações de classe?
Ótimas perguntas e, claro, elas têm uma resposta - diretivas JSP. Todo código não HTML dentro de um JSP deve ser colocado entre colchetes especiais <%
e %>
. Todas as diretivas JSP são fornecidas por um modelo:
<%@ directive %>
Aqui está uma lista dos atributos de diretiva de página mais populares:
Exemplo | Descrição | ||
---|---|---|---|
1 | importar | <%@ page import="java.util.Date" %> |
Importa uma classe |
2 | tipo de conteúdo | <%@ page contentType=text/html %> |
Define o tipo de conteúdo |
3 | estende | <%@ page extends="Object" %> |
Você pode definir a classe base |
4 | informação | <%@ page info="Author: Peter Ivanovich; version:1.0" %> |
Define dados para getServletInfo() |
5 | amortecedor | <%@ page buffer="16kb" %> |
Define o tamanho do buffer de resposta |
6 | linguagem | <%@ page language="java" %> |
Especifica o idioma, o padrão é Java |
7 | isELignored | <%@ page isELIgnored="true" %> |
Permite desativar scripts EL |
8 | isThreadSafe | <%@ page isThreadSafe="false" %> |
Pontos para threadsafe |
9 | AutoFlush | <%@ page autoFlush="false" %> |
Gerencia gravações de buffer |
10 | sessão | <%@ page session="false" %> |
Você pode desabilitar a sessão para a página |
onze | páginaCodificação | <%@ page pageEncoding="UTF-8"%> |
Você pode definir a codificação da página |
12 | página de erro | <%@ page errorPage="errorpage.jsp" %> |
Você pode definir uma página de erro |
2.2 Importações
Vamos adicionar algumas importações ao nosso arquivo JSP por diversão e definir uma classe base.
Exemplo de arquivo JSP:
<%@ page import="java.util.Date" %> <%@ page import="java.lang.Math" %> <%@ page extends="com.codegym.MyHttpServlet" %>
<html>
<body>
<%
double num = Math.random(); if (num > 0.95) {
%>
<h2>You are lucky, user!</h2><p>(<%= num %>)</p>
<%
}
%>
</body>
</html>
E é isso que vai sair disso:
import java.util.Date;
import java.lang.Math;
public class HelloServlet extends com.codegym.MyHttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
PrintWriter out = response.getWriter();
out.print("<html> ");
out.print("<body> ");
double num = Math.random();
if (num > 0.95) {
out.print("<h2> You're lucky, user! </h2> <p> (" + num + ")</p> ");
}
out.print("</body> ");
out.print("</html> ");
}
}
Funciona. Ótimo!
GO TO FULL VERSION