Jakarta Server Pages - Jakarta Server Pages
Extensão de nome de arquivo |
.jsp, .jspx, .jspf
|
---|---|
Tipo de mídia da Internet |
aplicação / jsp |
Desenvolvido por | Eclipse Foundation |
lançamento inicial | 1999 |
Último lançamento |
3.0 (21 de outubro de 2020 ) |
Tipo de formato | Página da web dinâmica |
Padrão | JSR 245 |
Formato aberto ? | sim |
Local na rede Internet |
projects |
Jakarta Server Pages ( JSP ; anteriormente JavaServer Pages) é uma coleção de tecnologias que ajuda os desenvolvedores de software a criar páginas da web geradas dinamicamente com base em HTML , XML , SOAP ou outros tipos de documentos. Lançado em 1999 pela Sun Microsystems , o JSP é semelhante ao PHP e ASP , mas usa a linguagem de programação Java .
Para implantar e executar Jakarta Server Pages, é necessário um servidor web compatível com um contêiner de servlet , como Apache Tomcat ou Jetty .
Visão geral
Arquitetonicamente, JSP pode ser visto como uma abstração de alto nível de servlets Java . JSPs são convertidos em servlets no tempo de execução, portanto, JSP é um Servlet; cada servlet JSP é armazenado em cache e reutilizado até que o JSP original seja modificado.
Jakarta Server Pages pode ser usado de forma independente ou como o componente de visualização de um design de modelo-visualização-controlador do lado do servidor , normalmente com JavaBeans como o modelo e servlets Java (ou uma estrutura como Apache Struts ) como o controlador. Este é um tipo de arquitetura do Modelo 2 .
O JSP permite que o código Java e certas ações predefinidas sejam intercalados com o conteúdo de marcação da web estático, como HTML. A página resultante é compilada e executada no servidor para entregar um documento. As páginas compiladas, bem como quaisquer bibliotecas Java dependentes, contêm bytecode Java em vez de código de máquina . Como qualquer outro programa .jar ou Java, o código deve ser executado em uma máquina virtual Java (JVM) que interage com o sistema operacional host do servidor para fornecer um ambiente abstrato e neutro em relação à plataforma.
JSPs geralmente são usados para entregar documentos HTML e XML, mas por meio do uso de OutputStream, eles podem entregar outros tipos de dados também.
O contêiner da Web cria objetos JSP implícitos como solicitação, resposta, sessão, aplicativo, configuração, página, pageContext, saída e exceção. O JSP Engine cria esses objetos durante a fase de tradução.
Sintaxe
As páginas JSP usam vários delimitadores para funções de script . O mais básico é <% ... %>
, que inclui um scriptlet JSP . Um scriptlet é um fragmento de código Java executado quando o usuário solicita a página. Outros delimitadores comuns incluem <%= ... %>
para expressões, em que o scriptlet e os delimitadores são substituídos pelo resultado da avaliação da expressão e as diretivas , denotadas com <%@ ... %>
.
O código Java não precisa ser completo ou autocontido em um único bloco de scriptlet. Ele pode incluir conteúdo de marcação, desde que a página como um todo esteja sintaticamente correta. Por exemplo, qualquer bloco if / for / while Java aberto em um scriptlet deve ser fechado corretamente em um scriptlet posterior para que a página seja compilada com êxito. Isso permite que o código seja misturado e pode resultar em práticas de programação inadequadas.
O conteúdo que cai dentro de um bloco dividido de código Java (abrangendo vários scriptlets) está sujeito a esse código. O conteúdo dentro de um bloco if só aparecerá na saída quando a condição if for avaliada como verdadeira. Da mesma forma, o conteúdo dentro de uma construção de loop pode aparecer várias vezes na saída, dependendo de quantas vezes o corpo do loop é executado.
O seguinte seria um loop for válido em uma página JSP:
<p>Counting to three:</p>
<% for (int i=1; i<4; i++) { %>
<p>This number is <%= i %>.</p>
<% } %>
<p>OK.</p>
A saída exibida no navegador da web do usuário seria:
Counting to three: This number is 1. This number is 2. This number is 3. OK.
Linguagem de Expressão
A versão 2.0 da especificação JSP adicionou suporte para Expression Language (EL), usado para acessar dados e funções em objetos Java. No JSP 2.1, ele foi dobrado para a Unified Expression Language , que também é usada no JavaServer Faces .
Um exemplo de sintaxe EL :
O valor da "variável" no objeto "javabean" é $ {javabean.variable}.
Tags adicionais
A sintaxe JSP adiciona tags adicionais, chamadas ações JSP, para chamar a funcionalidade integrada. Além disso, a tecnologia permite a criação de bibliotecas de tags JSP customizadas que atuam como extensões da sintaxe JSP padrão. Uma dessas bibliotecas é a JSTL , com suporte para tarefas comuns, como iteração e condicionais (o equivalente a instruções "for" e "if" em Java).
Compilador
Um compilador JavaServer Pages é um programa que analisa JSPs e os transforma em Java Servlets executáveis . Um programa desse tipo é geralmente incorporado ao servidor de aplicativos e executado automaticamente na primeira vez que um JSP é acessado, mas as páginas também podem ser pré-compiladas para melhor desempenho ou compiladas como parte do processo de construção para testar erros.
Alguns contêineres JSP suportam a configuração da frequência com que o contêiner verifica os carimbos de data / hora do arquivo JSP para ver se a página foi alterada. Normalmente, esse carimbo de data / hora seria definido para um intervalo curto (talvez segundos) durante o desenvolvimento do software e um intervalo mais longo (talvez minutos ou mesmo nunca) para um aplicativo da Web implementado .
Crítica
Em 2000, Jason Hunter, autor de "Java Servlet Programming" descreveu uma série de "problemas" com JavaServer Pages. No entanto, ele escreveu que, embora JSP possa não ser a "melhor solução para a plataforma Java", é a "solução Java que mais se parece com a solução não-Java", com o que ele se referia às Active Server Pages da Microsoft . Mais tarde, ele adicionou uma nota ao seu site dizendo que o JSP havia melhorado desde 2000, mas também citou seus concorrentes, Apache Velocity e Tea (linguagem de modelo). Hoje, existem várias alternativas e várias páginas orientadas a JSP em aplicativos da web maiores são consideradas uma dívida técnica.
Veja também
Recipientes de servlet
- Apache Tomcat
- Apache TomEE
- Jetty (servidor web)
- Peixe de vidro
- Oracle iPlanet Web Server
- WebSphere Application Server
Alternativas de modelos baseados em Java
Referências
Leitura adicional
- Bergsten, Hans (2003). JavaServer Pages (3ª ed.). O'Reilly Media . ISBN 978-0-596-00563-4.
- Brown, Simon; Dalton, Sam; Jepp, Daniel; Johnson, Dave; Li, Sing; Raible, Matt. Pro JSP 2 . Apress . ISBN 1-59059-513-0.
- Hanna, Phil (2003). JSP 2.0 - A referência completa . McGraw-Hill Osborne Media . ISBN 978-0-07-222437-5.
- Sierra, Kathy; Bates, Bert; Basham, Bryan. Use primeiro Servlets e JSP . O'Reilly Media . ISBN 978-0-596-00540-5.
links externos
- Website oficial
- Referência de sintaxe JSP v2.0
- Especificação de páginas do servidor Jakarta, versão 3.0
- JavaServer Pages
- JavaServer Pages (JSP) e JSTL
- Placa de sintaxe JavaServer Pages v2.0 ( html )
- Tutorial oficial: O tutorial Java EE 5, Capítulo 5, Tecnologia JavaServer Pages
- Histórico de servlet
- configurar o ambiente JSP JSP Latest
- web-mode.el, modo principal emacs para edição de modelos jsp