Top 55 Servlets Interview Question You Need to Know in 2024

Last updated on Nov 02,2023 28K Views
Tech Enthusiast working as a Research Analyst at Edureka. Curious about learning... Tech Enthusiast working as a Research Analyst at Edureka. Curious about learning more about Data Science and Big-Data Hadoop.

Top 55 Servlets Interview Question You Need to Know in 2024

edureka.co

Java Servlets are the main reason behind the simplicity in developing the High-end Web Application as Web Pages due to which the Java Web Application Technology is on the highest demand in present days. In this article, we will discuss the most frequently asked interview questions based on Java Servlets.

 

Beginner Level Interview Questions

Q1. What is a Servlet?

AnsA Servlet is a Java program that runs on a Web server. It is similar to an applet but is processed on the server rather than a client’s machine. Servlets are often run when the user clicks a link, submits a form, or performs another type of action on a website

 

 

Q2. What is a Cookie?

Ans: A cookie is a piece of information that is present between multiple client requests. A cookie has a name, a single value, and optional attributes such as a comment, path and domain qualifiers, a maximum age, and a version number.

 

Q3. How PrintWriter is different from ServletOutputStream?

Ans: PrintWriter is basically a character-stream class. On the other hand, ServletOutputStream is a byte-stream class. The PrintWriter class can be used to write only character-based information whereas ServletOutputStream class can be used to write primitive values as well as character-based information.

 

Q4. Explain is servlet mapping?

Ans: Servlet mapping is a process of defining an association between a URL pattern and a servlet. The mapping is used to map requests to Servlets.

 

 Q5. What are the annotations used in Servlet 3?

Ans: The important 3 annotations used in the servlets are.

 

Q6. What is the difference between a Generic Servlet and HTTP Servlet?

Ans: A common feature between Generic Servlet and HTTP Servlet is both these Classes are Abstract Classes. But, they do have differences between them which discussed as follows

Generic ServletHTTP Servlet
Protocol IndependentProtocol Specific
Belongs to javax.servlet packageBelongs to javax.servlet.http package
supports only service() method 
supports doGet(), doPost(), doHead() methods

 

Q7. What is the use of RequestDispatcher Interface?

Ans: The RequestDispatcher interface defines the object that receives the request from the client and dispatches it to the resources such as a servlet, JSP, HTML file. The RequestDispatcher interface has the following two methods:

Forwards request from one servlet to another resource like servlet, JSP, HTML etc.

Includes the content of the resource such as a servlet, JSP, and HTML in the response.

 

Q8. Can a JSP be called using a Servlet?

Ans: Yes, Servlet can call a JSP using RequestDispatcher interface.

Example:

RequestDispatcher reqdis=request.getRequestDispatcher("log.jsp");
reqdis.forward(request,response);

 

Q9. Explain the Servlet Filter.

Ans: A Filter is defined as a pluggable object that is invoked either at the pre-processing or post-processing of a request.

 

Q10. Why do we need Servlet Filter?

Ans: We need Servlet Filters for the following reasons:

 

Q11. Why is init() method is used in Servlets?

Ans: The init() method is used to create or load some data that will be used throughout the life of the servlet.

 

Q12. What is load-on-startup in Servlet?

Ans: The load-on-startup element of servlet in web.xml is used to load the servlet at the time of deploying the project or the server to start. This saves time for the response of the first request.

 

Q13. What is a WAR file?

Ans: The WAR(Web Application Resource) file specifies the web elements. Either a Servlet or JSP project can be converted into a war file. Moving one Servlet project from one place to another will be fast as it is combined into a single file.

 

Q14. What does the following code snippet in an XML file mean?

<load-on-startup>1</load-on-startup>

Ans: Whenever a request for a servlet is placed, then the servlet container will initialize the servlet and load it. This process is defined in our config file called web.xml. But, by default, Container will not initialize the servlet, when the context is loaded. This can be achieved by defining the servlet in a pre-initialization procedure syntax <load-on-startup>1</load-on-startup>. Then, the servlet that we have defined in this tag will be initialized at the start when the context gets loaded before even getting the request.

 

Q15. How to get the server information in a servlet?

Ans: Yes, we can retrieve the information of a server in a servlet. We can use below code snippet to get the servlet information in a servlet through servlet context object.

getServletContext().getServerInfo()

 

Q16. Explain MVC pattern.

Ans: Model-View-Controller (MVC) is a design pattern that divides a software application into three segments namely the Model, the View and the Controller.

 

Intermediate Level Interview Questions

 

Q17. What is the workflow of a servlet? 

Ans: Servlet is a Java tool that is used to create Java Web Applications. It is located at the server-side and helps to generate dynamic web pages, it acts as a mediator between the incoming HTTP request from the browser and the database. Servlet is robust and called as a server-side programming language.

The following diagram explains the workflow of a Servlet.

A request is received from a webpage by the servlet. The servlet redirects the request to the appropriate JSP page and the JSP page sends the response as a result page that is visible to the client.

 

Q18. Write a Hello World Program using Servlets.

Ans: The code to write a Hello World PRogram using Servlets is as follows:

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

public class HelloWorld extends HttpServlet {
      private String message;
      public void init() throws ServletException {
             message = "Hello World";
      }
      public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
             response.setContentType("text/html");
             PrintWriter out = response.getWriter();
             out.println("<h1>" + message + "</h1>"); 
      } 
      public void destroy() { 
      } 
} 

 

Q19. What are the life cycle methods of a servlet?

Ans: The Servlet Life Cycle consists of three methods:

 

Q20. Can you create a Deadlock condition on a servlet?

Ans: Yes, a Deadlock situation can be created on a servlet by calling doPost() method inside doGet() method, or by calling a doGet() method inside doPost() method will successfully create a deadlock situation for a servlet.

 

Q21. Can we fetch the attributes related to a servlet on a different servlet?

Ans: The attributes of another servlet that we are looking for can be accessed by using its name. The syntax is described as follows:

Context.setAttribute (“name”,” value”)
Context.getAttribute (“name”)

 

Q22. What do you mean by MIME type?

Ans: The “Content-Type” response header is called MIME (Multipurpose Internet Mail Extensions) Type. The server sends MIME type to the client to let the client know the kind of data it’s sending. It helps the client in rendering the data for the user. Some of the most commonly used mime types are text/HTML, text/XML, application/XML.

 

Q23. What is the ServletConfig object?

Ans: javax.servlet.ServletConfig is used to pass configuration information to Servlet. Every servlet has its own ServletConfig object and servlet container is responsible for instantiating this object. We can provide servlet init parameters in web.xml file or through use of WebInitParam annotation.

 

Q24. What is the difference between ServletConfig and ServletContext?

Ans: Some of the major differences between ServletConfig and ServletContext are:

ServletConfigServletContext
ServletConfig is a unique object per servlet.ServletContext is a unique object for a complete application.
ServletConfig is used to provide the init parameters to the servlet.ServletContext is used to provide the application-level init parameters that all other servlets can use.
Attributes in the ServletConfig object cannot be set.We can set the attributes in ServletContext that other servlets can use.

 

Syntax for ServletConfig:

public ServletConfig getServletConfig(); 

Example of ServletConfig:

ServletConfig config=getServletConfig();

Syntax for ServletContext:

public ServletContext getServletContext();

Example for ServletContext:

ServletContext application=getServletContext();

 

Q25. What is the use of HttpServletRequestWrapper and HttpServletResponseWrapper?

Ans: Both HttpServletRequestWrapper and HttpServletResponseWrapper classes are used to help developers with a custom implementation of a servlet request and response types. Programmers can extend these classes and override only the specific methods that they need to implement for customized request and response objects.

 

Q26. Write a simple Servlet program to print the contents of HTML.

Ans: We can print the contents of HTML using the following steps:

Step 1: Get the object of PrintWriter using request.

PrintWriter out = response.getWriter();

Step 2: Now print HTML.

out.println("Hello World");

 

Q27. What do you mean by InterServlet communication?

Ans: InterServlet communication is a method to invoke another servlet using RequestDispatcherforward() and include() methods and provide additional attributes in the request for other servlet use.

 

Q28. How can we refresh automatically when new data is entered into the database?

Ans: The following code segment can be used to automatically update the database.

response.setHeader("Refresh",5);

This will update the browser after every 5 seconds

response.setHeader("Refresh","5", URL="http://localhost:8080/myServlet/Request.do0);

This will refresh Request.do after 5 seconds

 

 

Q29. What are the different methods involved in the process of session management in servlets?

Ans: The different methods involved in the session management in servlets are as follows:

user tries to access a protected resource, such as a JSP page. If the user has been authenticated, the servlet container makes the resource available; otherwise, the user is asked for a username and password

The <input type=”hidden“> defines a hidden input field. A hidden field let web developers include data that cannot be seen or modified by users when a form is submitted. A hidden field often stores what database record that needs to be updated when the form is submitted

A small text file created by a website that is stored in the user’s computer either temporarily for that session only or permanently on the hard disk. Cookies provide a way for the website to recognize you and keep track of your preferences

URL rewriting is an automatic process of altering a program written for manipulating the parameters in a URL (Uniform Resource Locator). URL manipulation is employed as a convenience by a Web server administrator, or for nefarious purposes by a hacker.

Session Management API is built on top of the Request-Response methods for session tracking. Session Tracking is a way to maintain state/data of a user. It is also known as session management in servlet.

 

Q30. How do you get the IP address of the client in servlet?

Ans: We can use the following code to get the client IP address in servlet.

request.getRemoteAddr()

 

Q31. How is an application exception handling is done using a Servlet?

Ans: The doGet() method and doPost() method throw the ServletException and IOException. The browser understands only HTML. Hence, when an exception os is thrown by an application, then, the servlet container processes the exception and generates an HTML response. Same happens with other errors such as error 404.

Servlet API supports customized Exception and Error Handler servlets that can be configured in the deployment descriptor, the purpose of these servlets is to handle the Exception thrown by application and send HTML response that is useful for the user. We can provide a link to the application home page or the details that let the user know what went wrong.

The Web.XML configuration is as follows:

<error-page>
	<error-code>404</error-code>
    <location>/AppExceptionHandler</location>
</error-page>
<error-page>
  	<exception-type>javax.servlet.ServletException</exception-type>
  	<location>/AppExceptionHandler</location>
</error-page>

 

Q32. What is Servlet Interface?

Ans: The central abstraction in the Servlet API is called as the Servlet Interface. All servlets in the Web Application implement this interface, either directly or, most commonly by extending a class that implements it.

 

Q33. How to get the path of servlet in the server?

Ans: We can use the following code snippet to get the actual path of the servlet in the file system.

getServletContext().getServerInfo()

 

Q34. What do you mean by CGI and what are its drawbacks?

Ans: CGI is an abbreviation for Common Gate Interface. It consists of a set of code segments at the server-side using which the server interacts with the client running on the web. The drawbacks of CGI are as follows:

 

Q35. Explain Web Container.

Ans: A web container or a Servlet container is used to interact with the Servlet and includes all the Servlet, JSP, XML files inside it. Web Container’s responsibility is to manage the life cycle of a servlet and to help to map the URL of a specific servlet. A web container is also used creates the object of a servlet.

 

Q36. What do you mean by the Servlet Chaining?

Ans: Servlet Looping or Chaining is a process where the output of one servlet is given as an input to another servlet and the last servlet output is considered as the actual output which is provided to the client.

 

Q37. Why do we use sendredirect() method?

Ans: The sendredirect() method basically works at the client-side. It is used to redirect the response to another resource like Servlet, JSP, HTML.

The syntax for sendredirect() method is as follows:

void send Redirect(URL);

Example:

response.sendredirect(“http://www.google.com”);

 

Q38. Why doesn’t a Servlet include main()? How does it work?

Ans: Servlets don’t have  a main() method. Because servlets are executed using web containers. When a client places request for a servlet, then the server hands the requests to the web container where the servlet is deployed.

 

 

Q39. What do you mean by Servlet Context?

Ans: Servlet Context is referred to as an object that has information about the application and the Web Container. Using the Servlet context we can log events, get the URL of the specific resource, and store the attributes for other servlets to use.

The important methods of servlet context are as follows:

 

Advanced Level Interview Questions

 

Q40. What is the difference between Context Parameter and Context Attribute?

Ans: The main difference is, Context Parameter is a value stored in the deployment descriptor, which is the web.xml and is loaded during the deployment process. On the other hand, Context Attribute is the value which is set dynamically and can be used throughout the application.

 

Q41. Can you refresh servlet in client and server-side automatically?

Ans: Yes, There are a couple of primary ways in which a servlet can be automatically refreshed. One way is to add a “Refresh” response header containing the number of seconds after which a refresh should occur. The TestServlet class below shows an example of this.

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
      private static final long serialVersionUID = 1L;
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            performTask(request, response);
      }
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
      IOException {
            performTask(request, response);
      }
      private void performTask(HttpServletRequest request, HttpServletResponse response) throws ServletException,
      IOException {
            response.setContentType("text/html");
            response.addHeader("Refresh", "5");
            PrintWriter out = response.getWriter();
            out.println("TestServlet says hi at " + new Date());
      }
}


Q42. What is Pure Servlet?

Ans: Pure servlet is known as a servlet that is used to create java objects that can be implemented from javax.servlet.Servlet interface.

 

Q43. What do you mean by HttpServlet and how it is different from the GenericServlet?

Ans: HttpServlet is basically extended from GenericServlet and it also inherits the properties of Genericservlet. HttpServlet defines an HTTP protocol servlet while GenericServlet defines a generic, protocol-independent servlet.

 

Q44. Which exception is thrown if the servlet is not initialized properly?

Ans: The Servlet Exception or Unavailable Exception is thrown if the servlet is not initialized properly.

 

Q45. How do we translate JSP?

Ans: In a servlet, the Java code is written in HTML but JSP(Java Server Page) allows us to write Java code in HTML. JSP allows easy development of web pages and allows web designer and web developer to work independently. All JSP pages are translated into servlet and web container is responsible for translating JSP into the servlet.

 

Q46.

Ans:  We can get HttpSession object by calling the public method getSession() of HttpServletRequest. The following code segment will help us.

 HttpSession session = request.getSession();

 

Q47. Explain JSESSIONID and when is it created?

Ans: JSESSIONID is basically a cookie that is used to manage the session in a Java Web Application. It is created by the Web Container when a new session is created.

 

Q48. What is the difference between sendRedirect() and Forward() in a Servlet?

Ans: The difference between sendRedirect() and Forward() can be explained as follows:

sendRedirect():

void sendRedirect(String URL)

Forward():

forward(ServletRequest request, ServletResponse response)

Q49. Explain the working of service() method of a servlet.

Ans: The service() method is actually the main method that is expected to perform the actual task. The servlet container calls the service() method to handle requests coming from the client/browsers and to provide the response back to the client.

Each time the server receives a request for a servlet, the server creates a new thread and calls for the service. The service() method checks the HTTP request type and calls the respective methods as required.

The sample code for the same is as follows:

public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException{
}

The container calls the service() method and service method invokes doGet(), doPost(), doPut(), doDelete(), methods as needed. So you have nothing to do with service() method but you override either doGet() or doPost() depending on the request you receive from the client-end.

 

Q50. Can you send an Authentication error from a Servlet?

Ans: Yes, we can use setStatus(statuscode) method of HttpServletResponse to send an authentication error.  All we have to do is to set an error code and a valid reason along with the error code.

response.sendError(404, "Page not Found!!!" );

 

Ans: If we wish to include a central Error Handler for all the exceptions then we can define following error-page instead of defining separate error-page elements for an individual exception

<error-page>
   <exception-type>java.lang.Throwable</exception-type >
   <location>/ErrorHandler</location>
</error-page>

 

Q52.

Ans: Creating and Setting cookies using servlet involves the following steps:

Step 1: Creating a Cookie object

Call the Cookie constructor with a cookie name and a cookie value, both of String Datatype. Care should be taken that these particular symbols( [ ] ( ) = , ” / ? @ : ;) are excluded while declaring name and values.

Cookie cookie = new Cookie("key","value");

Step 2: Setting the maximum age

We shall use setMaxAge to specify how long the cookie should be valid. Following code-segment would set up a cookie for 24 hours.

cookie.setMaxAge(60*60*24);

 

Step 3: Sending the Cookie into the HTTP response headers

We can use response.addCookie to add cookies in the HTTP response header as follows:

response.addCookie(cookie);

 

Q53. How can you use a servlet to generate a plain text instead of HTML?

Ans: A servlet basically generates HTML. We can set the content-type response header by any of the methods. The example for producing text message EDUREKA using the HTML code inside the servlets.

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class EDUREKA extends HttpServlet{
       public void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException{
              response.setContentType("text/html");
              PrintWriter out = response.getWriter();
              out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +"Transitional//EN\">n" +"<HTML>n" +"<HEAD><TITLE>EDUREKA</TITLE></HEAD>n" + "<BODY>n" + " <H1>HAPPY LEARNING</H1>  n" + "</BODY></HTML>");
       }
}

 

Q54. Explain the steps involved in placing a servlet within a package?

Ans: The Packages are used to separate the servlets under a directory to eradicate confusion among programmers working simultaneously on creating servlets on the same server. This can be done through the following steps:

Let us understand through this an example as follows:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class servlet1 extends HttpServlet{
      public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
             response.setContentType("text/html");
             PrintWriter out = response.getWriter();
             String docType = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">n";
             out.println(docType + "<HTML>n" + "<HEAD><TITLE>Edureka</TITLE></HEAD>n" + "<BODY BGCOLOR=\"#FDF5E6\">n" + "</BODY></HTML>");
      }
}

 

55. Explain steps to establish JDBC Connections.

Ans: The steps to be followed to establish a JDBC connection are as follows:

try {
       Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex)
       System.out.println("Error: unable to load driver class!");
       System.exit(1);
}
try {
      Driver myDriver = new oracle.jdbc.driver.OracleDriver();
      DriverManager.registerDriver( myDriver );
}
catch(ClassNotFoundException ex){
      System.out.println("Error: unable to load driver class!");
      System.exit(1);
}

 

You can create a connection using the database URL, username, and password and also using properties object.

Finally, to end the database session, you need to close all the database connections. However, if you forget, Java’s garbage collector will close the connection when it cleans up stale objects.

conn.close(); 

 

With this, we come to an end of this “Servlet Interview Questions” article. I hope you have understood the importance of Java Programming. Now that you have understood the basics of Programming in Java and Spring, check out the training provided by Edureka on many technologies like Java, Spring and  many more, a trusted online learning company with a network of more than 250,000 satisfied learners spread across the globe
Got a question for us? Mention it in the comments section of this “Servlet  Interview Questions” blog and we will get back to you as soon as possible.

Upcoming Batches For Java Certification Training Course
Course NameDateDetails
Java Certification Training Course

Class Starts on 4th May,2024

4th May

SAT&SUN (Weekend Batch)
View Details
Java Certification Training Course

Class Starts on 25th May,2024

25th May

SAT&SUN (Weekend Batch)
View Details
BROWSE COURSES
REGISTER FOR FREE WEBINAR UiPath Selectors Tutorial