[ Team LiB ] |
![]() ![]() |
A Simple WAR File ExampleWhen you create a WAR file, you must include a web.xml file that describes the application. Usually, you need descriptions of at least the various servlets in your application. Listing B.1 shows a crude servlet that calls a JavaServer Page. Listing B.1 Source Code for ExampleWARServlet.javapackage examples.warexample; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class ExampleWARServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Just call the JSP RequestDispatcher dispatcher = getServletContext().getRequestDispatcher( "/ExampleWARJSP.jsp"); dispatcher.forward(request, response); } } Without a WAR file, you would need to put the ExampleWARJSP.jsp file in your Web server's root directory. Listing B.2 shows ExampleWARJSP.jsp. Listing B.2 Source Code for ExampleWARJSP.jsp<html> <body> <h1>Hello From the WAR!</h1> <p> This page was invoked by ExampleWARServlet! </body> </html> The web.xml file for the example application assigns a name to the example servlet and sets up a URL mapping. The mapping is relative to the base path of the installed application. In other words, if the mapping says that the servlet's name is /ExampleWARServlet and the base path is /example, the full path for the example servlet would be /example/ExampleWARServlet. Listing B.3 shows the web.xml file. Listing B.3 Source Code for web.xml<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <display-name>WARExample</display-name> <description> A skeletal application to demonstrate WAR files </description> <servlet> <servlet-name>ExampleWARServlet</servlet-name> <servlet-class>examples.warexample.ExampleWARServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ExampleWARServlet</servlet-name> <url-pattern>/ExampleWARServlet</url-pattern> </servlet-mapping> </web-app> The root element, <web-app>, defines the boundaries of the deployment descriptor for the Web application. For version 2.4 of the servlet specification, an XML schema is used instead of a DTD in your WAR file. The Default Deployment Descriptor
You will soon learn what each element in the web.xml file means. Most are probably obvious because their names are descriptive. When you create the WAR file, the web.xml file must be in a directory named WEB-INF, and any Java classes you need, like the servlet, must be in a classes directory under WEB-INF. If you have ExampleWARJSP.jsp, ExampleWARServlet.java, and web.xml in the same directory, you can use the following Windows commands to create example.war: mkdir WEB-INF copy web.xml WEB-INF mkdir WEB-INF\classes javac -d WEB-INF\classes ExampleWARServlet.java jar cvf example.war *.jsp WEB-INF Required Libraries
If you are running Unix or Linux, the procedure is almost identical: mkdir WEB-INF cp web.xml WEB-INF mkdir WEB-INF/classes javac -d WEB-INF/classes ExampleWARServlet.java jar cvf example.war *.jsp WEB-INF |
[ Team LiB ] |
![]() ![]() |