Implementing a Servlet in Java Web Applications
In Java web development, regular Java classses cannot be directly accessed via a browser. To enable HTTP-based interaction, Java provides Servlets—specialized classes that act as dynamic resources within a web application and respond to client requests through URLs.
It's important to distinguish related terms:
- Service: Refers to business logic layers.
- Server: The runtime environment (e.g., Tomcat) hosting the application.
- Servlet: A Java component handling dynamic web requests.
Steps to Implement a Servlet
1. Implemant the javax.servlet.Servlet Interface
Create a class that implements the Servlet interface from the servlet-api.jar. This requires overriding all declared methods.
2. Override Required Methods
The following example demonstrates a basic implementation with lifecycle and utility methods:
import javax.servlet.*;
import java.io.IOException;
public class ExampleServlet implements Servlet {
private ServletConfig config;
// Called once after instantiation by the servlet container
@Override
public void init(ServletConfig config) throws ServletException {
this.config = config;
System.out.println("ExampleServlet initialized.");
}
// Returns the ServletConfig object
@Override
public ServletConfig getServletConfig() {
return this.config;
}
// Handles each client request
@Override
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
System.out.println("Processing request in ExampleServlet...");
}
// Provides metadata about the servlet
@Override
public String getServletInfo() {
return "A sample servlet for demonstration.";
}
// Invoked before the servlet is removed from service
@Override
public void destroy() {
System.out.println("ExampleServlet is being destroyed.");
}
}
3. Configure the Servlet in web.xml
Map the servlet class to a URL pattern inside WEB-INF/web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>ExampleServlet</servlet-name>
<servlet-class>com.example.ExampleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ExampleServlet</servlet-name>
<url-pattern>/example</url-pattern>
</servlet-mapping>
</web-app>
Here, accessing /example in the browser triggers ExampleServlet.
4. Deploy and Run
Package the application as a WAR file or place it in the webapps directory of a servlet container like Apache Tomcat, then start the server. The servlet becomes accessible via the configured URL path.