Feedback Form

Core Interfaces: Servlet, ServletConfig, ServletContext, ServletRequest, ServletResponse

Core Interfaces in Servlet (Servlet, ServletConfig, ServletContext, ServletRequest, ServletResponse)

Servlet Interface

Servlet Java की एक powerful technology है जो server-side programming के लिए use होती है। Servlet interface core interface है जो javax.servlet package में मौजूद होता है। यह interface हर servlet class के लिए base contract define करता है।

जब कोई class Servlet बनती है, तो वो या तो सीधे Servlet interface को implement करती है या फिर GenericServlet या HttpServlet class को extend करती है। Servlet interface में पाँच main methods होते हैं जो servlet lifecycle को control करते हैं।

Methods of Servlet Interface

  • init(ServletConfig config) — Servlet को initialize करने के लिए। यह method servlet load होने पर सिर्फ एक बार call होता है।
  • service(ServletRequest req, ServletResponse res) — यह main method है जो client request को handle करता है और response generate करता है।
  • destroy() — Servlet को memory से remove करते समय resources free करने के लिए।
  • getServletConfig() — ServletConfig object return करता है जो configuration information रखता है।
  • getServletInfo() — Servlet के बारे में short description देता है।

Example of Servlet Interface Implementation

import javax.servlet.*;
import java.io.*;
public class MyServlet implements Servlet {
  ServletConfig config = null;

  public void init(ServletConfig config){
    this.config = config;
    System.out.println("Servlet initialized");
  }

  public void service(ServletRequest req, ServletResponse res) throws IOException {
    res.setContentType("text/html");
    PrintWriter out = res.getWriter();
    out.print("Hello from MyServlet!");
  }

  public void destroy(){ System.out.println("Servlet destroyed"); }
  public ServletConfig getServletConfig(){ return config; }
  public String getServletInfo(){ return "Sample Servlet"; }
}

यह example दिखाता है कि servlet कैसे initialize होता है, request handle करता है और response भेजता है। यह structure हर servlet का basic pattern होता है।

ServletConfig Interface

ServletConfig interface servlet को initialization parameters provide करने के लिए use होता है। यह हर servlet के लिए unique होता है और web.xml file में defined parameters को access करने में help करता है।

Key Features of ServletConfig

  • प्रत्येक servlet के पास अपना अलग ServletConfig object होता है।
  • Initialization parameters web.xml में <init-param> tag से define किए जाते हैं।
  • ServletConfig object automatically container द्वारा servlet को provide किया जाता है।

Important Methods

  • getInitParameter(String name) — किसी specific parameter की value return करता है।
  • getInitParameterNames() — सभी parameter names return करता है।
  • getServletContext() — ServletContext object return करता है।
  • getServletName() — Servlet का नाम return करता है।

Example of ServletConfig Usage

import javax.servlet.*;
import java.io.*;
public class ConfigDemo extends GenericServlet {
  public void service(ServletRequest req, ServletResponse res) throws IOException {
    res.setContentType("text/html");
    PrintWriter out = res.getWriter();
    ServletConfig config = getServletConfig();
    String db = config.getInitParameter("database");
    out.print("Database Name: " + db);
  }
}

web.xml Configuration

<servlet>
  <servlet-name>ConfigDemo</servlet-name>
  <servlet-class>ConfigDemo</servlet-class>
  <init-param>
    <param-name>database</param-name>
    <param-value>StudentDB</param-value>
  </init-param>
</servlet>

इस तरह ServletConfig का use करके हम servlet को external configuration से connect कर सकते हैं। इससे code reusable और flexible बनता है।

ServletContext Interface

ServletContext interface पूरे web application के लिए एक common object होता है। इसका use global initialization parameters store करने और application-level data share करने के लिए किया जाता है।

Features of ServletContext

  • यह पूरे web application में common होता है।
  • Application-wide information share करने के लिए use होता है।
  • Server information और context path access करने के लिए helpful होता है।

Important Methods

  • getInitParameter(String name) — web.xml में defined context parameter की value देता है।
  • getAttribute(String name) — Object retrieve करता है जो application में store किया गया है।
  • setAttribute(String name, Object value) — Application level data store करता है।
  • removeAttribute(String name) — Stored data remove करता है।
  • getRealPath(String path) — किसी file का actual path देता है।

Example of ServletContext Usage

import javax.servlet.*;
import java.io.*;
public class ContextDemo extends GenericServlet {
  public void service(ServletRequest req, ServletResponse res) throws IOException {
    res.setContentType("text/html");
    PrintWriter out = res.getWriter();
    ServletContext context = getServletContext();
    String company = context.getInitParameter("company");
    out.print("Company Name: " + company);
  }
}

web.xml Configuration

<context-param>
  <param-name>company</param-name>
  <param-value>TechLearn Pvt Ltd</param-value>
</context-param>

ServletContext के through हम एक application के सभी servlets में common data share कर सकते हैं। इससे application memory efficient और manageable बनता है।

ServletRequest Interface

ServletRequest interface का main काम client से आने वाली request data को servlet तक पहुंचाना है। यह data browser या किसी external client से आ सकता है। इसमें request से जुड़ी सारी information होती है जैसे parameters, attributes, protocol आदि।

Important Methods

  • getParameter(String name) — किसी form field की value return करता है।
  • getParameterNames() — सभी parameter names return करता है।
  • getAttribute(String name) — Attribute value return करता है।
  • setAttribute(String name, Object o) — Attribute set करता है।
  • getRemoteAddr() — Client का IP address देता है।
  • getContentType() — Request का content type बताता है।

Example of ServletRequest Usage

import javax.servlet.*;
import java.io.*;
public class RequestDemo extends GenericServlet {
  public void service(ServletRequest req, ServletResponse res) throws IOException {
    res.setContentType("text/html");
    PrintWriter out = res.getWriter();
    String name = req.getParameter("username");
    out.print("Welcome, " + name + "!");
  }
}

ServletRequest object का use करके हम user input data को process कर सकते हैं और dynamically response बना सकते हैं।

ServletResponse Interface

ServletResponse interface response भेजने के लिए use होता है। इसका काम servlet द्वारा generate किए गए output को client (browser) तक पहुंचाना है। यह interface output stream और writer provide करता है ताकि text या binary data भेजा जा सके।

Important Methods

  • getWriter() — Character-based output भेजने के लिए PrintWriter object देता है।
  • getOutputStream() — Binary data (images, files) भेजने के लिए।
  • setContentType(String type) — Response का MIME type set करता है जैसे "text/html"।
  • setBufferSize(int size) — Output buffer size define करता है।
  • flushBuffer() — Buffered data को forcefully client तक भेजता है।

Example of ServletResponse Usage

import javax.servlet.*;
import java.io.*;
public class ResponseDemo extends GenericServlet {
  public void service(ServletRequest req, ServletResponse res) throws IOException {
    res.setContentType("text/html");
    PrintWriter out = res.getWriter();
    out.print("<h2>Response sent successfully!</h2>");
  }
}

ServletResponse का सही use response को fast और structured तरीके से भेजने में मदद करता है। यह interface web communication का essential हिस्सा है।

Difference between ServletConfig and ServletContext

Basis ServletConfig ServletContext
Scope Single Servlet तक सीमित पूरे Application में common
Initialization web.xml के <init-param> tag से web.xml के <context-param> tag से
Sharing Shared नहीं किया जा सकता सभी servlets में shared होता है
Use Servlet specific data के लिए Global application data के लिए

Quick Summary

  • Servlet Interface — Defines servlet lifecycle methods।
  • ServletConfig — Provides servlet-specific configuration data।
  • ServletContext — Global application-level data और parameters के लिए।
  • ServletRequest — Client से आने वाली request को handle करने के लिए।
  • ServletResponse — Client को response भेजने के लिए।

इन सभी core interfaces का सही understanding servlet technology को deeply समझने में मदद करता है। यह हर Java Web Application का foundation हिस्सा हैं और exam preparation या practical project दोनों में बहुत useful होते हैं।