| < Free Open Study > |
|
In the early days (at the time of the Servlet 2.0 specification) of servlet development, deploying your applications was nothing short of a nightmare. The files would have to be deployed in different directory structures, with completely different configuration files to write.
This can be illustrated by looking at what was required to deploy a servlet to Apache JServ (a popular, but now obsolete servlet runner) and BEA WebLogic. In JServ we had to add our servlets to what was called a servlet zone. This was achieved by adding an entry to a file called zone.properties, adding a mapping (in the form of a name-value pair), and then restarting the server. However in Weblogic 4.5, deploying a servlet was achieved by registering it in the weblogic.properties file with a line such as:
weblogic.httpd.register.hello = examples.servlets.HelloWorldServlet
For a detailed discussion of deploying to either of these now outdated servlet containers, you can look at the web sites of BEA, or the Apache Foundation.
Obviously all of these differences made moving from servlet container to servlet container a very difficult and unenviable task. In some ways the benefits of using a portable technology such as Java were lost because you were all but tied in to a particular vendor for your servlet container. Java standards being what they are, something had to change. With the advent of J2EE and the Servlet 2.1 specification the concept of web applications was introduced. As we will see, this has removed the problems associated with deploying your applications across different vendors.
Put simply, a web application (often shortened to just "web app") is a collection of servlets, HTML pages, JavaServer Pages (JSP), JSP tag libraries, classes, and any other web resources that can be bundled and run on multiple web containers from multiple vendors.
Obviously this is a very simplistic view of web applications; they are a lot more than just a bundle of web resources. For example, a web application can define many things about its behavior and configuration, such as how security is managed, how database connections are managed, and how requests are mapped to particular servlets.
| < Free Open Study > |
|