What are UNO C++ Servlets good for ?


The Java servlet API has become very popular for creation of dynamic HTML for several reasons (speed advantage vs cgi, easy httpsession tracking, ease of use, etc.).


However a common problem of Java servlets is Java itself. When some specific data can only be accessed over a C-API (e.g. a database access or reading some other file format), one is forced to to use JNI or RPC or CORBA (IIOP). Neither of these solution bears real fun. JNI is very errorprone to program and having C-Code run within a java webserver is riscy, as one segmentation fault crashes the webserver with all active sessions. UNO C++ services may run in a different process, bridging is done by the UNO framework.

Writing UNO-Servlets is easy, you do not need to become familiar with the UNO component model if you don't want to.

Another reason for using UNO C++ servlets is higher performance for certain tasks, e.g. when you need to do a large XSLT transformation, you may prefer implementing it in C++.


UNO C++ Servlets now allow to implement servlets directly in C++. This package offers a framework to hook these C++ servlets into your favourite webserver via an UNO interprocess bridge (bindings to the Apache Tomcat and the common Apache webserver currently exist, others may follow (e.g. MS IIS) ). It allows to access attributes in the Tomcat-HttpSession (this access has some restrictions, see below) or allows session tracking for the common Apache server.



What are UNO C++ Servlets not ?

There is currently no JSP equivalent.

C++ code may access data within the java httpsession only when the type of the data is simple (strings, numbers) or when the objects implements an UNO idl-interface. So it is not possible to call arbitrary java code from C++.