The Web application structure involving WEB-INF subdirectories is the standard for all Java web applications and is specified by the Servlet API specification. Given a top-level directory name
myapp
the directory structure is as follows:
/myapp
/images
/WEB-INF
/classes
/lib
The WEB-INF subdirectory contains the deployment descriptor for the application, named The WEB-INF/classes directory contains all Servlet classes and other class files, and the directory structure of the class files matches their package name. For example, if you have a fully qualified class name The following example creates a package named Compiling classes in a package is not much different from compiling other classes. The easiest way is to keep your java file in a fully qualified path, such as the classes mentioned above, which will be kept in the Assuming that your environment is set up correctly, enter the If Servlet depends on other libraries, you must also reference those JAR files in CLASSPATH. I only quote here. This command line uses the built-in javac compiler, which is included with the Sun Microsystems Java Software Development Kit (JDK, Java Software Development Kit). Microsystems’s Java Software Development Kit (JDK). In order for this command to work properly, you must include the location of the Java SDK that you use in the PATH environment variable. If all goes well, the above compilation will be generated in the same directory By default, Servlet applications are located in the path If you have a fully qualified class name The above entry is to be created in the At this point, you are basically done, now let’s use
web.xml
. All HTML files are located in the top-level directory
myapp
. For admin users, you will find that the ROOT directory is the parent directory of myApp. 2.21.1. Create a Servlet in a package ¶
com.myorg.MyServlet
, then the Servlet class must be located in the following directory/myapp/WEB-INF/classes/com/myorg/MyServlet.class
com.myorg
the MyServlet class.// Package Naming
package com.myorg;
// Import necessary Java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
private String message;
public void init() throws ServletException
{
// Perform necessary initialization
message = "Hello World";
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// Set response content type
response.setContentType("text/html;charset=UTF-8");
// The actual logic is here
PrintWriter out = response.getWriter();
out.println("<h1>" + message + "</h1>");
}
public void destroy()
{
// Nothing
}
}
2.21.2. Compile the Servlet in the package ¶
com.myorg
. You also need to be in the
CLASSPATH
add the directory.
<Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes
directory, and compile MyServlet.java, as follows:$ javac MyServlet.java
servlet-api.jar
JAR file, because I don’t use any other libraries in the Hello World program.
MyServlet.class
files. The next section explains how to deploy a compiled Servlet to production. 2.21.3. Servlet packaged deployment ¶
<Tomcat-installation-directory>/webapps/ROOT
and the class file is placed in the
<Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes
.
com.myorg.MyServlet
then the Servlet class must be located in
WEB-INF/classes/com/myorg/MyServlet.class
, you need to be located in the
<Tomcat-installation-directory>/webapps/ROOT/WEB-INF/
of
web.xml
create the following entries in the file:<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.myorg.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
web.xml
in the file
<web-app>...</web-app>
inside the label. There may already be various entries available in this file, but don’t worry about it.
<Tomcat-installation-directory>\bin\startup.bat
(on Windows) or
<Tomcat-installation-directory>/bin/startup.sh
(on Linux/Solaris, etc.) start the tomcat server, and finally enter http://localhost:8080/MyServlet in the address bar of the browser. If all goes well, you will see the following results:Hello World