JServer overview
The J-Server is an extensible web server that allows users to upload untrusted Java
code onto the server to service HTTP requests. The J-Server is currently the primary
application for the J-Kernel and is used on a daily basis. It is implemented as a JOS
subsystem (cornell.slk.jserver.httpserver) and runs as a stand-alone server, as a plug-in
for Microsoft's web server (IIS 2.0+), or as a remote J-Server. A remote J-Server is
attached to a stand-alone or IIS plug-in J-Server who forwards HTTP requests over the
network using JOS RPC or Microsoft's DCOM (available only for the IIS plug-in).
The J-Server also contains:
- A servlet API package (cornell.slk.jserver.servlet) that is very similar to and supports
most of the functionality offered by Sun's Java Servlet API (as documented in Sun's Servlet
Development Kit).
- A package with two special servlets: a servlet loader
(cornell.slk.jserver.servlets.ServletLoader) used for loading and unloading servlets, and
a subsystem loader (cornell.slk.jserver.servlets.SubsystemLoader) used for loading and
unloading JOS subsystems. These two servlets are installed automatically by the JServer
during initialization.
- A package a with a few demo servlets (cornell.slk.jserver.demoservlets).
Tutorial on the JServer
Remote Debugging with the JServer
Tutorial on JOS