Skip navigation.
Downloads | Product Documentation | Support

Programming WebLogic HTTP Servlets

# Introduction to Programming

The following sections introduce basic HTTP servlet programming:

- Writing a Simple HTTP Servlet
- Advanced Features
- Complete HelloWorldServlet Example

# Writing a Simple HTTP Servlet

The section provides a procedure for writing a simple HTTP servlet, which prints out the message Hello World. A complete code example (the `HelloWorldServlet`) illustrating these steps is included at the end of this section. Additional information about using various J2EE and Weblogic Server services such as JDBC, RMI, and JMS, in your servlet are discussed later in this document.

1. Import the appropriate package and classes, including the following:

>     import javax.servlet.*;
>     import javax.servlet.http.*;
>     import java.io.*;

2. Extend `javax.servlet.http.HttpServlet`. For example:

>     public class HelloWorldServlet extends HttpServlet{

3. Implement a `service()` method.

The main function of a servlet is to accept an HTTP request from a Web browser, and return an HTTP response. This work is done by the `service()` method of your servlet. Service methods include response objects used to create output and request objects used to receive data from the client.

You may have seen other servlet examples implement the `doPost()` and/or `doGet()` methods. These methods reply only to POST or GET requests; if you want to handle all request types from a single method, your servlet can simply implement the `service()` method. (However, if you choose to implement the `service()` method, you cannot implement the `doPost()` or `doGet()` methods, unless you call `super.service()` at the beginning of the `service()` method.) The HTTP servlet specification describes other methods used to handle other request types, but all of these methods are collectively referred to as service methods.

All the service methods take the same parameter arguments. An `HttpServletRequest` provides information about the request, and your servlet uses an `HttpServletResponse` to reply to the HTTP client. The service method looks like the following:

>     public void service(HttpServletRequest req,
>            HttpServletResponse res) throws IOException
>     {

4. Set the content type, as follows:

>     res.setContentType("text/html");

5. Get a reference to a `java.io.PrintWriter` object to use for output, as follows:

>     PrintWriter out = res.getWriter();

6. Create some HTML using the `println()` method on the `PrintWriter` object, as shown in the following example:

>     out.println("<html><head><title>Hello World!</title></head>");
>     out.println("<body><h1>Hello World!</h1></body></html>");
>       }
>     }

7. Compile the servlet, as follows:

1. Set up a development environment shell with the correct classpath and path settings.
2. From the directory containing the Java source code for your servlet, compile your servlet into the `WEB-INF/classes` directory of the Web Application that contains your servlet. For example:

>     javac -d /myWebApplication/WEB-INF/classes myServlet.java

8. Deploy the servlet as part of a Web Application hosted on WebLogic Server. For an overview of servlet deployment, see Administration and Configuration.
9. Call the servlet from a browser.

The URL you use to call a servlet is determined by: (a) the name of the Web Application containing the servlet and (b) the name of the servlet as mapped in the deployment descriptor of the Web Application. Request parameters can also be included in the URL used to call a servlet.

Generally the URL for a servlet conforms to the following:

>     http://host:port/webApplicationName/mappedServletName?parameter

The components of the URL are defined as follows:

- `host` is the name of the machine running WebLogic Server.
- `port` is the port at which the above machine is listening for HTTP requests.
- `webApplicationName` is the name of the Web Application containing the servlet.
- parameters are one or more name-value pairs containing information sent from the browser that can be used in your servlet.

For example, to use a Web browser to call the `HelloWorldServlet` (the example featured in this document), which is deployed in the `examplesWebApp` and served from a WebLogic Server running on your machine, enter the following URL:

>     http://localhost:7001/examplesWebApp/HelloWorldServlet

The `host``:``port` portion of the URL can be replaced by a DNS name that is mapped to WebLogic Server.

# Advanced Features

The preceding steps create a basic servlet. You will probably also use more advanced features of servlets:

- Handling HTML form data—HTTP servlets can receive and process data received from a browser client in HTML forms.

- Retrieving Client Input

- Application design—HTTP servlets offer many ways to design your application. The following sections provide detailed information about writing servlets:

- Providing an HTTP Response
- Threading Issues in HTTP Servlets
- Dispatching Requests to Another Resource

- Initializing a servlet—if your servlet needs to initialize data, accept initialization arguments, or perform other actions when the servlet is initialized, you can override the `init()` method.

- Initializing a Servlet

- Use of sessions and persistence in your servlet—sessions and persistence allow you to track your users within and between HTTP sessions. Session management includes the use of cookies. For more information, see the following sections:

- Session Tracking from a Servlet
- Using Cookies in a Servlet
- Configuring Session Persistence

- Use of WebLogic services in your servlet—WebLogic Server provides a variety of services and APIs that you can use in your Web applications. These services include Java Database Connectivity (JDBC) drivers, JDBC database connection pools, Java Messaging Service (JMS), Enterprise JavaBeans (EJB), and Remote Method Invocation (RMI). For more information, see the following sections:

- Using WebLogic Services from an HTTP Servlet
- Servlet Security
- Accessing Databases

# Complete HelloWorldServlet Example

This section provides the complete Java source code for the example used in the preceding procedure. The example is a simple servlet that provides a response to an HTTP request. Later in this document, this example is expanded to illustrate how to use HTTP parameters, cookies, and session tracking.

Listing 2-1 HelloWorldServlet.java

>     import javax.servlet.*;
>     import javax.servlet.http.*;
>     import java.io.*;

>     public class HelloWorldServlet extends HttpServlet {
>       public void service(HttpServletRequest req,
>                           HttpServletResponse res)
>            throws IOException
>       {
>         // Must set the content type first
>         res.setContentType("text/html");
>         // Now obtain a PrintWriter to insert HTML into
>         PrintWriter out = res.getWriter();

>         out.println("<html><head><title>" +
>                     "Hello World!</title></head>");
>         out.println("<body><h1>Hello World!</h1></body></html>");
>       }
>     }

You can find the source code and instructions for compiling and running all the examples used in this document in the `samples/examples/servlets` directory of your WebLogic Server distribution.