Web Development with Java Servlets
Web Development with Java Servlets
Before servlets, Java had applets - small programs that ran inside web browsers. Applets failed. Servlets succeeded. A servlet is a Java class that runs inside a web server and responds to HTTP requests. Think of it as a Java-powered replacement for CGI scripts.
Why Servlets Matter
Servlets gave Java developers a way to build dynamic web applications without leaving the Java ecosystem. Unlike PHP or raw CGI, servlets run inside a managed container that handles threading, lifecycle, and resource management for you.
The servlet container - usually Apache Tomcat, Jetty, or Undertow - is the bridge between the web server and your Java code. It listens for incoming HTTP requests, creates or reuses servlet instances, and routes each request to the right handler.
The Java EE / Jakarta EE Ecosystem
Servlets are part of the Java EE (now Jakarta EE) specification. Servlets handle HTTP. JSP generates HTML. JDBC connects to databases. Together these technologies form the backbone of enterprise Java web applications.
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
resp.getWriter().println("<h1>Hello from a Servlet!</h1>");
}
}
Your Development Environment
You need three things: a JDK (version 17 or later recommended), a servlet container like Tomcat, and a build tool like Maven or Gradle. The Maven Archetype for webapp projects gives you a working structure in seconds.
mvn archetype:generate
-DgroupId=com.example
-DartifactId=my-webapp
-DarchetypeArtifactId=maven-archetype-webapp
-DinteractiveMode=false
This creates a src/main/webapp/WEB-INF/web.xml file and a standard directory layout. Deploy the built WAR file to Tomcat and your servlet is live.
Request-Response at the Core
Every interaction follows the same pattern: the client sends an HTTP request, the container dispatches it to a servlet, the servlet processes it and writes an HTTP response. This simple model scales remarkably well.
Key Points
- Servlets are Java classes that handle HTTP requests inside a web server.
- The servlet container (Tomcat, Jetty) manages the lifecycle and threading.
- Servlets replaced applets and CGI as the primary Java web technology.
- Maven archetypes provide a quick project scaffolding for webapps.
- Every request follows the request-response cycle managed by the container.