Tomcat 7: Deploying a simple JSP

First download Tomcat7. I used this to get it setup in Debian (https://wiki.bedis.eu/debian/squeeze_tomcat7_installation until Servlet installation).
Then create a working directory for your project. Here's the directory structure. Note we're not using the src/ directory just as yet.


In the web/ directory put a simple JSP file called hello.jsp. Note the notation for including java code.

 <%= new String("Hiya.") %>

Now create a web.xml file in your web/WEB-INF/ folder (stands for web information that will tell the servlet container about this site).

 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
   <display-name>Hello, World Application</display-name>

After all the schema definitions and the version information in web-app, the display-name tell your servlet container (Tomcat) the site's name for administration purposes, and description likewise.
Then the servlet tag has a servlet-name for you to define your serlvet a name that will be used later in mapping. You'd normally define a Java class under servlet-class also, but we're not creating Java classes in this tutorial.
Finally you set a servlet-mapping, that points via servlet-name to the name of the servlet you defined above, and maps that to a url via url-pattern, '/hello' in this case.
Next you will need a build.xml file to build this via Ant.

 <project name="My Project" default="compile" basedir=".">
  <property name="build.home" value="${basedir}/build"/>
  <property name="src.home" value="${basedir}/src"/>
  <property name="web.home" value="${basedir}/web"/>
  <target name="compile" depends="prepare">
  <target name="prepare">
    <mkdir dir="${build.home}"/>
    <mkdir dir="${build.home}/WEB-INF"/>
    <mkdir dir="${build.home}/WEB-INF/classes"/>
    <copy todir="${build.home}">
      <fileset dir="${web.home}"/>

We first set the properties for the project. Then we have a blank compile target, that would normally compile your Java classes. And this depends on a prepare target that copies all the stuff in web/, i.e. web.xml and hello.jsp, into the build directory. Run 'ant' to make it do this.
Then you need to deploy this. You'd normally package this up into a WAR (Web ARchive) file, but Tomcat allows you merely to copy the content of build/ into its webapps/ folder (in the location where tomcat is installed, in my case /var/lib/tomcat). You do this via:

 mkdir $YOUR_TOMCAT_HOME/webapps/hello
 cp -r build/ $YOUR_TOMCAT_HOME/webapps/hello

Then restart your tomcat installation for good measure. You new web site is available at:


tomcat tomcat-setup ant

Edit on Github!

comments powered by Disqus