A Simple Servlet Generating Plain Text

By: aathishankaran Emailed: 1672 times Printed: 2153 times    

Latest comments
By: rohit kumar - how this program is work
By: Kirti - Hi..thx for the hadoop in
By: Spijker - I have altered the code a
By: ali mohammed - why we use the java in ne
By: ali mohammed - why we use the java in ne
By: mizhelle - when I exported the data
By: raul - no output as well, i'm ge
By: Rajesh - thanx very much...
By: Suindu De - Suppose we are executing

A Simple Servlet Generating Plain Text

         This below program shows a simple servlet that just generates plain text, with the output.  A Servlet That Generates HTML shows the more usual case where HTML is generated. However, before moving on, it is worth spending some time going through the process of installing, compiling, and running this simple servlet. You’ll find this a bit tedious the first time you try it. Be patient; since the process is the same each time, you’ll quickly get used to it, especially if you partially automate the process by means of a script file such as that presented in the following section.  


import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

PrintWriter out = response.getWriter();

out.println("Hello World");



Compiling and Installing the Servlet

The first thing you need to do is to make sure that your server is configured properly and that your CLASSPATH refers to the JAR files containing the standard servlet classes. Please refer to previous article (Installation and Setup) for an explanation of this process. The next step is to decide where to put the servlet classes. This location varies from server to server, so refer to your Web server documentation for definitive directions. However, there are some moderately common conventions. Most servers have three distinct locations for servlet classes, as detailed below.

 1. A directory for frequently changing servlet classes.

         Servlets in this directory are automatically reloaded when their class file changes, so you should use this directory during development. For example, this is normally install_dir/servlets with Sun’s Java Web Server and IBM’s WebSphere and install_dir/myserver/servletclasses for BEA Web Logic, although most servers let the server administrator specify a different location. Neither Tomcat nor the JSWDK support automatic servlet reloading. Nevertheless, they still have a similar directory in which to place servlets; you just have to stop and restart the mini-server each time you change an existing servlet. With Tomcat 3.0, place servlets in install_dir/webpages/WEB-INF/classes, with the JSWDK 1.0.1, useinstall_dir/webpages/WEB-INF/servlets.

 2. A directory for infrequently changing servlet classes.

         Servlets placed in this location are slightly more efficient since the server doesn’t have to keep checking their modification dates. However, changes to class files in this directory require you to restart the server. This option (or Option 3 below) is the one to use for “production” servlets deployed to a high-volume site. This directory is usually something like install_dir/classes, which is the default name with Tomcat, the JSWDK, and the Java Web Server. Since Tomcat and the JSWDK do not support automatic servlet reloading, this directory works the same as the one described in Option 1, so most developers stick with that previous option.

 3. A directory for infrequently changing servlets in JAR files.

         With the second option above, the class files are placed directly in the class’s directory or in subdirectories corresponding to their package name. Here, the class files are packaged in a JAR file, and that file is then placed in the designated directory. With Tomcat, the JSWDK, the Java Web Server, and most other servers, this directory is install_dir/lib. You must restart the server whenever you change files in this directory. Once you’ve configured your server, set your CLASSPATH, and placed the servlet in the proper directory, simply do “javac HelloWorld.java” to compile the servlet. In production environments, however, servlets are frequently placed into packages to avoid name conflicts with servlets written by other developers. Using packages involves a couple of extra steps that are covered in Section 2.4 (Packaging Servlets). Also, it is common to use HTML forms as front ends to servlets (see Chapter 16). To use them, you’ll need to know where to place regular HTML files to make them accessible to the server. This location varies from server to server, but with the JSWDK and Tomcat, you place an HTML file in install_dir/webpages/path/file.html and then access it via http://localhost/path/file.html (replace localhost with the real hostname if running remotely). A JSP page can be installed anywhere that a normal HTML page can be. 

Invoking the Servlet

         With different servers, servlet classes can be placed in a variety of different locations, and there is little standardization among servers. To invoke servlets, however, there is a common convention: use a URL of the form http://host/servlet/ServletName. Note that the URL refers to servlet, singular, even if the real directory containing the servlet code is called servlets, plural, or has an unrelated name like classes or lib. Figure 2–1, shown earlier in this section, gives an example with the Web server running directly on my PC (“localhost” means “the current machine”).

Most servers also let you register names for servlets, so that a servlet can be invoked via http://host/any-path/any-file. The process for doing this is server-specific; check your server’s documentation for details.

JSP Home | All JSP Tutorials | Latest JSP Tutorials

Sponsored Links

If this tutorial doesn't answer your question, or you have a specific question, just ask an expert here. Post your question to get a direct answer.

Bookmark and Share


Be the first one to add a comment

Your name (required):

Your email(required, will not be shown to the public):

Your sites URL (optional):

Your comments:

More Tutorials by aathishankaran
Web Security Issues
The Web User's Perspective
Server-side plug-Ins
The best way to avoid security vulnerabilities with new server
JavaScript Security
Window Object
Working with Status Bar Messages
Retrieving a Portion of a String
Referencing Windows
Math Object
Frame Object
Document Object
Closing Windows
Built-in Object in Javascript
Textarea Object

More Tutorials in JSP
LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: `java.net.BindException: Permission denied <null>:80
JSP Alert Example
JSP CheckBox Example
Uploading an Image to a Database using JSP
Uploading a file to a server using JSP
A JSP page that gets properties from a bean
The page Directive in JSP
The taglib, tag, include, attribute and the variable Directive in JSP
Declarations in JSP
Scriptlets and Expressions in JSP
Tag Libraries in JSP
The Request Object in JSP
The Response Object in JSP
The Out Object in JSP
The Session Object in JSP

More Latest News
Most Viewed Articles (in JSP )
Automatically Refreshing a JSP
JSP CheckBox Example
JSP Alert Example
JSP Program for display Date
Uploading a file to a server using JSP
The BodyTag Interface in JSP
JSP Example to connect to MS SQL database and retrieve records
Retrieving a Portion of a String
Comparison operators in JSP
JSP Example to connect to MS SQL database using Tomcat Connection Pool
Sending Email using JSP
A Simple Servlet Generating Plain Text
What are the different scopes in JSP?
Embedding java codes in jsp sciptlets
The Advantages of JSP
Most Emailed Articles (in JSP)
Click to Activate and Use this control
The Servlet Life Cycle
Textarea Object
The JSP Program running first Time.
Embedding java codes in jsp sciptlets
Debugging Servlets
A JSP page that gets properties from a bean
What is JSP?
A Servlet That Generates HTML
The Advantages of JSP
Document Object
Password Object
Retrieving a Portion of a String
Working with Status Bar Messages
NotifyUtil::java.net.ConnectException: Connection refused: connect