Ao enviar dados XML por HTTP, é necessário usar JSP para lidar com documentos XML de entrada e saída, como documentos RSS. Como um documento XML, é apenas um monte de texto. Criar um documento XML usando JSP não é mais difícil do que criar um documento HTML.
Enviar conteúdo XML usando JSP é o mesmo que enviar conteúdo HTML. A única diferença é que você precisa definir o atributo de contexto da página como text/xml. Para definir o atributo de contexto, use o comando <%@page %>, assim:
<%@ page contentType="text/xml" %>
O próximo exemplo envia conteúdo XML para o navegador:
<%@ page contentType="text/xml" %><books> <book> <name>História de Padam</name> <author>ZARA</author> <price>100</price> </book></ livros>
Use um navegador diferente para acessar este exemplo e ver a árvore de documentos que o exemplo renderiza.
Antes de usar JSP para processar XML, você precisa colocar os dois arquivos de biblioteca relacionados a XML e XPath no diretório <Diretório de instalação do Tomcat>lib:
XercesImpl.jar: Baixe aqui http://www.apache.org/dist/xerces/j/
xalan.jar: Baixe aqui http://xml.apache.org/xalan-j/index.html
Arquivo livros.xml:
<books><book> <name>História de Padam</name> <author>ZARA</author> <price>100</price></book><book> <name>Grande Mistério</name> <author> NUHA</author> <price>2000</price></book></books>
arquivo principal.jsp:
<%@
idioma da página
=
"Java"
contentType
=
"texto/html; conjunto de caracteres=UTF-8"
codificação de página
=
"UTF-8"
%>
<%@
prefixo taglib
=
"c"
uri
=
"http://java.sun.com/jsp/jstl/core"
%>
<%@
prefixo taglib
=
"x"
uri
=
"http://java.sun.com/jsp/jstl/xml"
%>
<html>
<cabeça>
<título>
JSTL x:parse Tags
</título>
</head>
<corpo>
<h3>
Informações sobre livros:
</h3>
<c:importar
var
=
"livroInfo"
url
=
"http://localhost:8080/books.xml"
/>
<x: analisar
xml
=
"${bookInfo}"
var
=
"saída"
/>
<b>
O título do primeiro livro é
</b>
:
<x:fora
selecione
=
"$saída/livros/livro[1]/nome"
/>
<br>
<b>
O preço do segundo livro
</b>
:
<x:fora
selecione
=
"$saída/livros/livro[2]/preço"
/>
</body>
</html>
Visite http://localhost:8080/main.jsp e os resultados são os seguintes:
INFORMAÇÕES SOBRE LIVROS:O título do primeiro livro é:História de Padam O preço do segundo livro: 2000
Este é o arquivo style.xsl da folha de estilo XSLT:
<?xml version="1.0"?><xsl:stylesheet xmlns:xsl= "http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" indent="yes"/> <xsl:template match="/"> <html> <body> <xsl:apply-templates/> </body> </html></xsl:template> <xsl:template match="books"> <table> <xsl:for-each select="book"> <tr> <td> <i><xsl:value-of select="name"/></i> </td> <td> <xsl:value-of select="author"/> </td> <td> <xsl:value-of select="price"/ > </td> </tr> </xsl:for-each> </table></xsl:template></xsl:stylesheet>
Este é o arquivo main.jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ taglib prefix="x" uri="http://java.sun. com/jsp/jstl/xml" %> <html><head> <title>Tags JSTL x:transform</title></head><body><h3>Informações sobre livros:</h3><c:set var="xmltext"> <books> <book> <name>História de Padam</name> <author>ZARA</author> <price>100</price> </book> <book> <name>Grande Mistério< /name> <author>NUHA</author> <price>2000</price> </book> </books></c:set> <c:import url="http://localhost:8080/style. xsl" var="xslt"/><x:transform xml="${xmltext}" xslt="${xslt}"/> </body></html>
Os resultados da execução são os seguintes:
Para obter mais informações sobre como usar JSTL para processar XML, consulte a JSP Standard Tag Library.