8c7f6c03

Создание сервлета на Java


Oracle XML DB поддерживает Java Servlet API версии 2.2 с некоторыми ограничениями, и с возможностью дополнительно установить сервлет поддержки JSP.

Подготовим текст сервлета в файле XMLDBServlet.java:

import java.io.PrintWriter; import java.io.IOException; import javax.servlet.GenericServlet; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.ServletException;

public class XMLDBServlet extends GenericServlet {

public void service ( ServletRequest request

, ServletResponse response

) throws ServletException, IOException {

String s = request.getParameter ( "rex" );

response.setContentType ( "text/xml" );

PrintWriter out = response.getWriter ( ); out.println ( "<?xml version=\"1.0\"?>" ); out.println ( "<html><head>" ); out.println ( "<title>My XMLDBServlet servlet demo</title>" ); out.println ( "</head><body>" ); out.println ( "<h2>Ave, " + s + " !</h2>" ); out.println ( "</body></html>" ); out.close ( ); } }

Пример ради общности рассматривает употребление суперкласса GenericServlet, а не HttpServlet.

Загрузим сервлет в БД одним из возможных способов:

>loadjava -grant public -u scott/tiger -r XMLDBServlet.java

Проверкой легко убедиться, что СУБД не только загрузит в БД исходный текст, но и получит из него класс.

Чтобы сервлет мог вызываться извне, сведения о нем требуется занести в ресурс-файл /xdbconfig.xml в репозитарии XML DB. Это файл с «объектно-реляционным» храненнем, и подправить его можно либо через WebDAV (системами, обеспечивающими такую правку), либо обычными функциями UPDATEXML и прочими. (Именно этот файл не допускает удаления из репозитария, поэтому выгрузить его, подправить и загрузить заново невозможно).

Однако при желании, для удобства правки файла /xdbconfig.xml можно использовать специально созданые для этого подпрограммы пакета DBMS_XDB. Выполним в SQL*Plus от имени пользователя XDB:



Содержание раздела