Feedback Form

Introduction: Servlets as Dynamic HTML Generators

Servlets as Dynamic HTML Generators

Servlet एक powerful server-side technology है जो web application development में dynamic content generate करने के लिए use की जाती है। Static HTML files सिर्फ fixed content दिखाते हैं, जबकि Servlet real-time data process करके Dynamic HTML Pages बनाती है। इस वजह से यह Java-based web development का core हिस्सा बन चुका है।

What is a Servlet?

Servlet एक Java program होता है जो server पर run होता है और client (जैसे browser) से आने वाले HTTP requests को process करके response भेजता है। Servlet को हम Java class की तरह लिखते हैं, जो javax.servlet और javax.servlet.http packages को use करती है। इसे web server या application server (जैसे Apache Tomcat) पर deploy किया जाता है।

Example of a Simple Servlet

नीचे एक simple example दिया गया है जो दिखाता है कि Servlet dynamic HTML content कैसे generate करती है:

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

public class WelcomeServlet extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();

      out.println("<html><body>");
      out.println("<h2>Welcome to Servlet Programming!</h2>");
      out.println("<p>This page is dynamically generated using Java Servlet.</p>");
      out.println("</body></html>");

    }
}

ऊपर का Servlet client के request पर run होकर dynamic HTML response generate करता है। इसमें Java code HTML content को real-time में create करता है।

Why Servlets Generate Dynamic HTML?

Servlet का main purpose होता है dynamic content generate करना, यानी ऐसा HTML जो user input या database data के हिसाब से बदल सके। उदाहरण के लिए, अगर user login करता है, तो Servlet user name के साथ personalized welcome message show कर सकती है।

  • Servlets database से data fetch करके उसे HTML format में show कर सकती हैं।
  • User input (form data) के हिसाब से dynamic response बना सकती हैं।
  • HTML templates में run-time पर values insert कर सकती हैं।

Servlet Life Cycle

हर Servlet का एक predefined life cycle होता है जिसे Servlet container manage करता है। इस cycle में Servlet load होती है, execute होती है और finally destroy होती है।

PhaseDescription
InitializationServlet class load होती है और init() method call होता है।
ServiceService method (doGet या doPost) request handle करती है और response generate करती है।
Destructiondestroy() method call होता है जब Servlet unload होती है।

Dynamic HTML Generation Process

Servlet dynamic HTML generate करने के लिए नीचे दिए गए steps follow करती है:

  • Step 1: Browser से request आती है (GET या POST)।
  • Step 2: Servlet request data को process करती है।
  • Step 3: Servlet response object का use करके HTML content generate करती है।
  • Step 4: Generated HTML client को भेजा जाता है।

Dynamic Content Example

String name = request.getParameter("username");
out.println("<h3>Welcome, " + name + "!</h3>");

ऊपर का code user के name के अनुसार dynamic welcome message generate करता है। अगर user "Rahul" है, तो output होगा – “Welcome, Rahul!”

Advantages of Using Servlets for Dynamic HTML

  • Dynamic Content Creation: Real-time data के हिसाब से HTML pages बनाना।
  • Reusability: Servlet को बार-बार use किया जा सकता है।
  • Performance: Traditional CGI से fast क्योंकि Servlet multithreading use करती है।
  • Platform Independent: Java-based होने के कारण हर OS पर run करती है।
  • Integration: Database, API, JSP और frameworks के साथ easily integrate हो सकती है।

Servlet vs CGI

Servlet और CGI दोनों का use dynamic content generate करने में होता है, लेकिन Servlet ज्यादा efficient और scalable होती है।

FeatureServletCGI
LanguageJavaC, Perl, Python आदि
ExecutionRuns inside JVM (single process, multi-threaded)Every request creates a new process
PerformanceFast and efficientSlow due to multiple process creation
ReusabilityHighLow
Platform IndependenceYesDepends on language

Servlets with Database (Dynamic Data Example)

Servlets JDBC (Java Database Connectivity) का use करके database से connect होती हैं और data को HTML format में show करती हैं। यह dynamic data display का best example है।

import java.sql.*;
...
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/studentdb", "root", "");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM students");

out.println("<table border='1'>");
while(rs.next()){
  out.println("<tr><td>" + rs.getInt(1) + "</td><td>" + rs.getString(2) + "</td></tr>");
}
out.println("</table>");

यह code database से data लेकर dynamically HTML table generate करता है।

Role of HttpServletResponse in Dynamic HTML

HttpServletResponse object dynamic HTML generation में सबसे important role निभाता है। यह response को control करता है — जैसे content type, headers और output stream।

  • setContentType("text/html"): यह browser को बताता है कि response HTML है।
  • getWriter(): PrintWriter object देता है जिससे HTML content लिखा जा सके।
  • addCookie() / sendRedirect(): Dynamic navigation और session management में use होता है।

Servlet Output Streams

Servlet दो तरह के output stream provide करती है:

StreamUse
PrintWriterText-based output जैसे HTML या XML generate करने के लिए।
ServletOutputStreamBinary data (जैसे image, file download) के लिए।

Best Practices for Dynamic HTML Generation

  • HTML को Java code से अलग रखने की कोशिश करें — JSP या Template Engines का use करें।
  • response.setContentType("text/html") हमेशा set करें।
  • Proper indentation और readable HTML लिखें।
  • Exceptions handle करने के लिए try-catch blocks का use करें।
  • Database connections को finally block में close करें।

Real-world Use Cases of Dynamic Servlets

  • Online Form Handling: User input लेकर confirmation page बनाना।
  • E-commerce Applications: Product list और user-specific recommendations दिखाना।
  • Login Systems: Authentication के बाद personalized dashboard दिखाना।
  • Online Exams: Question sets dynamically generate करना।

Summary Notes

  • Servlet एक Java-based server component है जो dynamic web content generate करता है।
  • Dynamic HTML generation Servlet का main use है।
  • HttpServletResponse object HTML output generate करने में use होता है।
  • Database integration से Servlet real-time data दिखा सकता है।
  • Servlets CGI से fast और scalable होती हैं।
  • Best practice है कि HTML और logic को अलग रखा जाए।