The HTTP protocol

About

The HTTP protocol is implemented conforming to RFC2616. The implementation of the protocol itself is an implementation of the servlet 2.3 API. Thus you can run servlets, JSP files and complete webapps (packed or unpacked) on this server. The existing handlers (file handler, JSP handler, CGI handler, ...) are nothing more than servlets.

A JSP engine is also build in, also implemented as a servlet. The provided JSP compiler (JspCC) can also be invoked from the command line, which can improve your development speed. The current version supports the complete set of JSP1.2 functionality, including user tags (but not those useless applet tags - use html code instead). Send bug reports or feature requests to BEJY.ORG.

known issues
Extended VariableInfos are not yet used.

Configuration

<group>a user group for contexts
<bejy>
  ...
  <group
    name="goodguys"
    userGroupDbi="de.bb.bejy.ConfigGroup"
  >
  ...
</bejy>
name="..."name of this group
userGroupDbi="..."classname for an usergroup implementation (e.g. de.bb.bejy.http.IniUserGroup)

<user>a user in this group
<bejy>
  ...
  <group name="goodguys">
    <user
      name="fred"
      password="cantread"
    />
    <user name="alf" password="secret" />
    ...
  </group>
  ...
</bejy>
name="..."name of the user
password="..."password of the user

<mime-types>mime types for HTTP
<bejy>
  ...
  <mime-types>
    <mime-type
      name="*.gif"
      value="image/gif"
    />
    ...
  </mime-types>
  ...
</bejy>
<mime-type>a mime type
name="..."name of the mime type
value="..."value of the mime type

<http>HTTP configuration
<bejy>
  ...
  <server
    name="http"
    ...
  >
  ...
  </server>
  ...
  <http>
    <host
      name="www.foo.com"
    >
      <context
        contextPath="/restricted"
        path="/htdocs/restricted"
        group="toughguys"
        realm="Secret Area"
      >
        <handler
          class="de.bb.bejy.http.CgiHandler"
          mask="*.pl"
          default="index.pl"
        >
          <parameter
            p1="value1"
          />
        </handler>
        <handler
          class="de.bb.bejy.http.ServletHandler"
          mask="*.cgi"
          servlet="MyTestServlet"
        >
          <parameter
            p1="value1"
            p2="value2"
          />
        </handler>
        <handler
          class="de.bb.bejy.http.Servlet"
          mask="*.jsp"
          servlet="de.bb.jsp.JspServlet"
        >
          <parameter
            compiler="/usr/lib/java/bin/javac"
          />
        </handler>
      </context>
      <context
        contextPath="/"
        path="/htdocs/www.foo.com/"
      >
        <handler
          class="de.bb.bejy.http.FileHandler"
          mask="*"
          default="index.html"
        />
      </context>
    </host>
  </http>
  ...
</bejy>
<host>host to listen for
name="..."the used hostname(s), you can add more than one hostname, e.g. "localhost, 127.0.0.1"
<context>a context in this host
contextPath="..."contextpath of this context (in url)
path="..."file path of this context
group="..."used group in this context
realm="..."used realm name for this context
<handler>handlers in this context
class="..."classname of this handler
mask="..."mask used to match requests
default="..."default file name (in file handler only)
servlet="..."classname of servlet implementation (in servlet handler only)
<parameter>parameter for this handler
parametername="..."parametername and value pair (e.g. compiler="/usr/lib/java/bin/javac" in JspHandler)
using JspCC from the command line
Invoke the JspCC using this command line (fix tha path to the libs)
  java -cp /java/lib/bb_util.jar;/java/lib/servlet2_3.jar;/java/lib/bb_jsp.jar de.bb.jsp.JspCC
The response will be
  de.bb.jsp.JspCC $Revision: 1.1.1.1 $
  usage: Jsp [-b<basePath>] [-o<javaName>] [-d<outDir>] <inFile>
    basePath: root directory for absolute includes/forwards
    javaName: name of the generated java class (without extension)
    outDir:   destination directory for java source file
    inFile:   name of the JSP file (without extension)
An example:
  java -cp /java/lib/bb_util.jar;/java/lib/servlet2_3.jar;/java/lib/bb_jsp.jar de.bb.jsp.JspCC -i\jsp\project\404 -b\jsp -ox404 -d\temp
The file '\jsp\project\404.jsp' is compiled, output is named 'x404.java' and put into the directory 'temp'. Absolut includes are taken from \jsp
 
(c) by Stefan Bebbo Franke in 2000-2002, all rights reserved