<< Chapter < Page Chapter >> Page >

I will explain the program code in fragments. The first fragment in Listing 1 shows the import directives necessary to support servlet programming.

Listing 1 - Import directives.
import java.io.*; import javax.servlet.*;import javax.servlet.http.*;

The Servlet interface

All servlets must implement the Servlet interface. You can implement it directly. However, it is more common to implement it indirectly by extending a class that implements the interface (such as HttpServlet ).

The Servlet interface declares methods for managing the servlet and its communications with clients. You will need to override some or all of those methods when you write your servlet.

Listing 2 shows the beginning of the controlling class for the servlet. Note that the servlet class extends HttpServlet . By extending the HttpServlet class, the servlet implements the Servlet interface indirectly.

Listing 2 - Beginning of the class definition.
public class Servlet01 extends HttpServlet{

Request and response objects

Two object references are passed to a servlet when it called by a client:

  • ServletRequest - encapsulates the communication from the client to the server.
  • ServletResponse - encapsulates the communication from the servlet back to the client

Access to these objects can be accomplished in more than one way. This servlet overrides the doGet method, which receives references to the two objects as incoming parameters.

The overridden doGet method

The beginning of the overridden doGet method is shown in Listing 3 .

Listing 3 - Beginning of the overridden doGet method.
public void doGet(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException{

Note that the doGet method throws an exception of type ServletException . In this servlet, some of the code inside the doGet method also throws an IOException , which is not handled inside the method. Thus, it is declared in the method signature.

Browser commands and servlet methods

A Java-enabled server provide a method corresponding to each of the commands that an HTTP client can send to its server. When the server receives a command from the client, the corresponding method is called on the servlet.

As the servlet programmer, you override some or all of those methods to provide the desired behavior.

The doGet method and the HTTP GET command

The doGet method corresponds to the HTTP GET command. If you don't override the method, the default implementation reports an HTTP BAD_REQUEST error when the browser sends a GET command.

Overriding the doGet method to support the GET command also automatically supports the HTTP HEAD command.

(The HEAD command is a GET command that returns no body in the response. It just returns the requested header fields.)

The fundamental purpose of the GET command makes it possible for the client to get something from the server. When you override the doGet method, you should

  • Read data from the request
  • Construct the proper headers in the response
  • Gain access to either the writer or the output stream (depending on whether the material to be returned is text or binary data)
  • Write the response data

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask