Updates
  • Starting New Weekday Batch for Full Stack Java Development on 27 September 2025 @ 03:00 PM to 06:00 PM
  • Starting New Weekday Batch for MERN Stack Development on 29 September 2025 @ 04:00 PM to 06:00 PM

Servlet Thread Models

Servlet implemented with 2 thread models:

1. Single thread Model
2. Multi Thread Model(*)

Note: Single ThreadModel interface is deprecated in J2EE 1.4

Files Required For Servlet 2.X

1. Index.html
2. TestServlet.java
3. Web.xml

1. Index.html

            
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
      <title>Insert title here</title>
   </head>
   <body>
      <form action="test.jtc">
         <h1>Enter Name</h1>
         <br>
         <br>
         <input type="text" name="uname" />
         <br>
         <br>
         <input type="submit" value="Check">
      </form>
   </body>
</html>
        
            

2. TestServlet.java

            
package com.jtcindia.servlet;
import java.io.IOException;
import java.io.Writer;
import javax.servlet.ServletException;
import javax.servlet.SingleThreadModel;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet implements
SingleThreadModel {
  public TestServlet() {
    System.out.println("**TestServlet Def Cons:" + this);
  }
  @Override
  protected void service(HttpServletRequest req,
      HttpServletResponse res) throws ServletException,
    IOException {
      String unam = req.getParameter("uname");
      Writer out = res.getWriter();
      out.flush();
      Thread th = Thread.currentThread();
      for (int i = 0; i < 10; i++) {
        System.out.println(th.getName() + "\t" + unam + "\t" + this);
        out.write("<br/>" + th.getName() + "\t" + unam + "\t" + this);
        try {
          Thread.sleep(1000);
        } catch (Exception e) {
          e.printStackTrace();
        }
        out.write("<h1>Hi" + unam + "<br/>Response from Server");
      }
    }
}
        
            

3. web.xml

            
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/webapp_3_0.xsd" id="WebApp_ID" version="3.0">
   <display-name>Jtc13</display-name>
   <welcome-file-list>
      <welcome-file>index.html</welcome-file>
   </welcome-file-list>
   <servlet>
      <servlet-name>TestServlet</servlet-name>
      <servletclass>com.jtcindia.servlet.TestServlet</servletclass>
   </servlet>
   <servlet-mapping>
      <servlet-name>TestServlet</servlet-name>
      <url-pattern>/test.jtc</url-pattern>
   </servlet-mapping>
</web-app>
        
            

Steps to create Servlet class in Eclipse

• Right click on SRC
• Select New-> Servlet
• Provide

o Package
o Class Name

• Change the superclass name if required.
• Click on the next button.
• Provide the name (the login name of the servlet).
• Add the required init-parameters by clicking the Add Button.
• Specify the URL mapping by clicking the Add button.
• Click on the next button.
• Select the required method signature and click "finished”.