Nesta edição, recapitulamos um dos assuntos mais populares na Java Magazine: o desenvolvimento com JSP e servlets. Foram selecionadas quatro dicas, aindatotalmente atuais, do artigo “Dicas na Web” publicado na Edição 12, que resolvem dúvidas comuns e exploram detalhes importantes da programação web com Java.
Recapitulando
Dicas na Web
Neste artigo são apresentadas dicas úteis sobre JSP e servlets, soluções para problemas recorrentes no desenvolvimento web, e esclarecimentos sobre alguns procedimentos comuns.
Obtendo as versões de JSP e Servlets
As tecnologias JSP e servlets evoluíram muito desde suas primeiras versões. Por exemplo, a API de servlets 2.3 introduziu o conceito de filtros (interface javax.sevlet.Filter), e com o JSP 2.0, veio o suporte a uso da Expression Language dentro das páginas.
Para garantir a compatibilidade de suas aplicações web, portanto, é sempre importante saber as versões das APIs suportadas nos containers web utilizados. Os métodos getMajorVersion() e getMinorVersion() da classejavax.servlet.ServletContext permitem obter a versão da API de servlets. Esta classe fornece ainda o método getServerInfo(), que descreve o nome do servidor e sua versão.
Já para a versão da especificação JSP, é preciso obter um objeto javax.servlet.jsp.JspEngine e chamar seu método getSpecificationVersion(). A Listagem 1 contém uma página JSP que pode ser usada para obter essas informações.
Listagem 1. versoes.jsp, obtendo a versão das APIs web suportadas
<%@ page import=”javax.servlet.ServletContext” %>
<%@ page import=”javax.servlet.jsp.JspFactory” %>
<%
ServletContext sc = pageContext.getServletContext();
String servidor = sc.getServerInfo();
String versaoServlet = “” + sc.getMajorVersion() + “.”
+ sc.getMinorVersion();
String versaoJsp = JspFactory.getDefaultFactory().
getEngineInfo().getSpecificationVersion();
%>
Servidor: <%= servidor %>
Servlet: <%= versaoServlet %>
JSP: <%= versaoJsp %>
Definindo o nome do arquivo em downloads
Um uso comum para servlets (e mesmo para páginas JSP) é a geração dinâmica de arquivos, tais como planilhas ou documentos PDF. Nessas situações, ao enviar o arquivo gerado, é preciso que o servlet especifique o tipo do conteúdo através do método response.setContentType(String tipo). O tipo segue no cabeçalho da resposta HTTP retornada pelo servlet e, de acordo com ele, o navegador poderá decidir o que fazer com o arquivo.
Normalmente o arquivo é exibido através de um plug
...