ID CONTENT STYLESHEETID
-- ------------ ------------
1 <A>value</A> 1
SQL> SELECT * FROM PROCESSED_SOURCE;
ID CONTENT
-- -------------------------------------------------------
1 <?xml version = '1.0' encoding = 'UTF-8'?> <B>value</B>
Выполнение XSLT-преобразований в Java
Язык Java традиционно широко поддерживает XML-технологии: большинство передовых разработок в этой области реализуется, как правило, сначала на Java и уж затем переносится на другие платформы разработки.
Не стал исключением и XSLT. Можно смело сказать, что количество XSLT-средств, написанных на Java, превосходит половину вообще всех существующих в настоящее время XSLT-пакетов.
Для того чтобы продемонстрировать использование XSLT в Java, мы приведем два варианта одной и той же программы — серверного приложения (сервлета), которое по запросу клиента будет возвращать информацию о текущем HTTP-сеансе в формате HTML.
Первый вариант сервлета можно назвать 'традиционным'. В нем HTML-документ создается серией инструкций out.println(...)
, которые выводят в выходящий поток размеченную HTML-тегами информацию о текущем сеансе.
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class example extends HttpServlet {
/**
* Инициализация.
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
/**
* Основной метод сервлета
*/
public void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Выставляем тип содержимого
response.setContentType('text/html');
// Инициализируем выходящий поток
OutputStreamWriter osw =
new OutputStreamWriter(response.getOutputStream());
PrintWriter out = new PrintWriter (response.getOutputStream());
// Выполняем вывод HTML-страницы
out.println('<html>');
// Выводим головную часть HTML-документа
out.println(' <head>');
out.println(' <title>Request information</title>');
out.println(' </head>');
// Выводим тело документа
out.println(' <body>');
// Выводим общую информацию о запросе
out.println(' <h1>General information</h1>');
out.println(' <table>');
// Выводим имя сервера
out.println(' <tr>');
out.println(' <td>Server name</td>');
out.println(' <td>' + request.getServerName() + '</td>');
out.println(' </tr>');
// Выводим порт сервера
out.println(' <tr>');
out.println(' <td>Server port</td>');
out.println(' <td>' + request.getServerPort() + '</td>');
out.println(' </tr>');
// Выводим адрес запрашивающей стороны
out.println(' <tr>');
out.println(' <td>Remote address</td>') ;
out.println(' <td>' + request.getRemoteAddr() + '</td>');
out.println(' </tr>');
// Выводим название протокола запроса
out.println(' <tr>');
out.println(' <td>Protocol</td>');
out.println(' <td>' + request.getProtocol() + '</td>');
out.println(' </tr>');
// Выводим метод запроса
out.println(' <tr>') ;
out.println(' <td>Method</td>');
out.println(' <td>' + request.getMethod() + '</td>');
out.println(' </tr>');
// Выводим URI запроса
out.println(' <tr>');
out.println(' <td>Request URI</td>');
out.println(' <td>' + request.getRequestURI() + '</td>');
out.println(' </tr>');
// Выводим строку запроса
out.println(' <tr>');
out.println(' <td>Query String</td>');
out.println(' <td>' + request.getQueryString() + '</td>');
out.println(' </tr>');
out.println(' </table>');
// Выводим параметры запроса