Tomcat and the Tomcat Web Application Directory Structure

ExerTran uses Apache Tomcat to dynamically generate web pages. The current system uses Tomcat 5. In a standard, or original, Tomcat installation, a web application, or webapp would be stored in the webapps directory of the Tomcat installation in a directory whose name defines the application's name. Instead of this the application directory is kept within the ExerTran directory structure and this directory is linked to Tomcat via an entry in the context file that is created for each coursework application: the context file tells Tomcat all about the application and this file is created and installed when a build of the coursework is performed.

Tomcat Web Application Directory Structure

The webapp directory is held in the coursework directory within the "courses" directory and is named after the coursework. If the coursework's name is D2, the coursework directory is "courses/D2Home" in the ExerTran installation directory, and the webapp directory is named "courses/D2Home/D2". The directory structure is as follows:-

jsp

This directory holds all the jsp files for the application, both system jsp files copied from the "src/jsp" directory (), but also question related jsp files from packages imported into the coursework or generated by the coursework lecturer (the chapter called Topic Packages). The directory structure of this directory is the same as that of the "src/jsp" directory, except that the "jsp/user/" directory also hold jsp files from the packages: with directories structured by package name.

images

This hold image files, primarily "gif", for particular questions. This directory is structured by package name.

html

This hold pure html files for particular questions. This directory is structured by package name.

WEB-INF

Tomcat hides the contents of this directory from users, and is the location where Java class files are stored as well as the Tomcat "web.xml" file which defines a number of parameters for the application in particular security information and the mapping of user requests, i.e. URIs, to servlets. The contents of this directory are as follows:-

web.xml

This is a key file for running a Tomcat application and defines various features of the application. This file is created automatically during a coursework build from a template file, "web.tmpl", held in "src/templates", with substitution of parameters defined in the coursework definition file (the chapter called Coursework Definition File. The contents of this file are described in .

classes

This holds the Java classes for the application, both system jsp files compiled from the "src/java" directory (), but also from the question related java files from packages imported into the coursework or generated by the coursework lecturer (the chapter called Topic Packages). The directory structure of this directory is the same as that of the "src/java" directory, except that the "java/user/" directory also hold java files from the packages: with directories structured by package name.

help

This holds the help for the application, both system help files compied from the "src/help" directory (), but also from the question related help files from packages imported into the coursework or generated by the coursework lecturer (the chapter called Topic Packages). The structure of the help files is by question package, with the system help files in the directory "system".

logs

This holds the log files produced from the execution of a coursework. There are 3 basic log files, usually called applicationlog.text, activitylog.txt, and mysqlLog.txt. The first of these logs debug messages from the coursework; the second logs user activity, particularly question attempts and marks awarded; the third error messages from the mysql database, which is the default database. When the coursework is re-started, these log files are compressed when they are larger then a set limit, and versions created. It may be necessary to change the compression to occur while the system is running, if regular closure of the application does not occur. A further log file is also created when the connection to the marks database fails and marks cannot be stored in the database. The marks are then recorded in a log file, from which they are read stored to the database when the coursework system is restarted: on successful storage of these marks, the log file is removed.

lib

This contains jar files needed by Tomcat to run the @systemname; application. These are copied from "src/lib" on a coursework build.

images-xml

This hold Xml files that define an image to be rendered by the "synDrawings" package: these images can be modified at run-time in response to user input. This directory is structured by package name.

initParameters

This holds files holding name-value pairs for use by jsp and java packages so that the ExerTran application can be varied without editing the program sources: see the chapter called initParameters: Initialisation parameters and .

xml

This holds Xml files with definitions of the database table columns. Changes to these files changes the structure of the database table on the next database write: note that this has only been tested for adding extra columns to a table not for removing columns. Note that the only database table that needs creating to start running a coursework is a "users" table, defined by "userd_def.xml" in the directory, with a manager user and password, all other tables can be created from the manager interface by saving to the database, even if there are no rows to save.

files

This is available for holding save files from the application, particularly csv files created from database tables.

src/java/dynDrawings

Objects that handle the dynDrawing system for modifying diagrams on the fly in respnse to user actions.