Example Servlet Code

/* @(#) rwdemo.java ver 22.4 00/08/21 14:43:49
 * ???.java, initial version May 2000
 *
 * Copyright (c) 2015 NEC Software Services (UK) Limited.
 * All Rights Reserved.
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.northgateis.reality.rsc.*;
import com.northgateis.realweb.*;
/**
 * Sample servlet demonstrating access to a Reality database.
 *
 * @author Kevin Wright
 */
public class rwdemo extends HttpServlet
{
   private static String NL = "<BR>"; 
   
   public void init(ServletConfig config) throws ServletException {
      super.init(config);
      /* Must initialise the RealWeb connection timer */
      RealWeb.init();
   }
   /**
    * Handle post requests by by calling doGet()
    */
   public void doPost(HttpServletRequest req, HttpServletResponse res)
                      throws ServletException, IOException {
      doGet(req, res);
   }
   /**
    * This is the main entry point for a servlet and handles get requests
    * from a browser
    */
   public void doGet(HttpServletRequest req, HttpServletResponse res)
                       throws ServletException, IOException {
      PrintWriter out;
      RealWebUrl URL;
      RealWeb connection = null;
      // set content type
      res.setContentType("text/html");
      // Get an output stream
      out = res.getWriter();
      // Create an HTML page header
      out.println("<HTML>");
      out.println("<HEAD>");
      out.println("<TITLE>RealWeb Demo Servlet</TITLE>");
      out.println("</HEAD>");
      out.println("<BODY>");
      out.println("<H1>RealWeb Demo Servlet</H1>");
      try {
          // Generate a RealWebUrl object to extract the required
          information from the URL
          URL = new RealWebUrl(req);
          // Get a connection (new or current)
          connection = RealWeb.getConnection(req, res, URL);
          // Run the BASIC program
          self.execute(req, res, connection, URL, out);
      }
      catch (IOException e) {
          // Handle exceptions by just printing a message
          out.println(e.toString());
      }
      finally {
          // Must always make the connection available again
          if (connection != null)
              connection.setAvailable();
      }
      // Finish the HTML page
      out.println("</BODY>");
      out.println("</HTML>");
 }
   public String getServletInfo() {
       return "Sample RealWeb servlet";
   }
    /**
     * Execute a Remote Basic subroutine and send the results
     * back to the browser
     *
     * Create, compile and catalog the following subroutine
     * The subroutine just returns its input parameters.
     *
     SUBROUTINE RW.SAMPLE(PARAM1, PARAM2)
     PARAM1 = "First parameter is ":PARAM1
     PARAM2 = "Second parameter is ":PARAM2
     RETURN
     *
     * Don't forget to enable the subroutine by creating a V entry in the
     * Remote Basic security file (RBASIC by default)
     *
     * Use the following URL to access the subroutine
     * /host/servlet/rwdemo/section/RW.SAMPLE?a query
     *
     * Where host is the host running the web server
     * and section is a section name generated by the rwconfig servlet
     */
    private void execute(HttpServletRequest req,
                        HttpServletResponse res,
                        RealWeb con,
                        RealWebUrl URL,
                        PrintWriter out)
                throws RSCException, IOException
   {
         // Attempt to run the Remote Basic program
         try
         {
              //Get the subroutine name from the processed URL
              String subName = URL.command;
              //Create a subroutine handle
              RSC sub = new RSC(con, subName);
              String query = req.getQueryString();
              if (query == null)
                  query = "none";
              RSCParam p1, p2;
              
              // Get references to the parameters
              p1=sub.getParam(1);
              p2=sub.getParam(2);
              // Set the parameters
              p1.setValue(query);
              p2.setValue(req.getServletPath());
              
              // Run the Remote Basic program
              sub.execute();
              // Print the returned parameters, one per line
              out.println(p1.getString());
              out.println("<BR>");
              out.println(p2.getString());
            }
            catch (RSCException e) {
              // catch any RSC exceptions and convert them to HTML
              throw new RealWebException(NL+RealWeb.AMtoNL(e.toString())+NL);
            }
      }
      public void destroy() }
            RealWeb.destroy ();
            super.destroy
      }
  }