DECLARE xval XMLTYPE;
xnode1 XMLTYPE := XMLTYPE ( ' <servlet xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"> <servlet-name>XMLDBServletPrimer</servlet-name> <servlet-language>Java</servlet-language> <display-name>Oracle XML DB Servlet Primer</display-name> <servlet-class>XMLDBServlet</servlet-class> <servlet-schema>SCOTT</servlet-schema> </servlet> ');
xnode2 XMLTYPE := XMLTYPE ( ' <servlet-mapping xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"> <servlet-pattern>/xdbserv</servlet-pattern> <servlet-name>XMLDBServletPrimer</servlet-name> </servlet-mapping> ');
BEGIN SELECT DBMS_XDB.CFG_GET ( ) INTO xval FROM dual;
SELECT INSERTCHILDXML ( xval, '/xdbconfig//servlet-list', 'servlet', xnode1
) INTO xval FROM dual ; SELECT INSERTCHILDXML ( xval, '/xdbconfig//servlet-mappings', 'servlet-mapping', xnode2
) INTO xval FROM dual ;
DBMS_XDB.CFG_UPDATE ( xval ); COMMIT; END; /
Теперь обращение по адресу:
даст результат:
Выдача данных в формате HTML и обращение к БД делается как обычно.
Например, для перехода к HTML в данном случае даже необязательно пользоваться классом HttpServlet. Достаточно в описании сервлета заменить text/xml на text/html и изъять строку out.println ( "<?xml version=\"1.0\"?>" );. Перетранслировав сервлет, получим по тому же адресу:
Обращение в тексте сервлета к данным БД делается как обычно для Java, и оставляется для самостоятельного упражнения.