HTML & Servlet: Generating Dynamic Web Pages
HTML & Servlet: Generating Dynamic Web Pages
HTML और Servlet का Introduction
आज की web development दुनिया में static और dynamic web pages दोनों की अपनी-अपनी importance है। लेकिन जब बात आती है user interaction, real-time data और personalization की, तो static pages काफी limit हो जाते हैं। यहीं पर HTML और Servlet का combination काम आता है। HTML page web browser को structure देता है, जबकि Servlet server-side पर dynamic content generate करता है।
Simple शब्दों में, HTML सिर्फ design या layout बनाता है, लेकिन Servlet उस design में dynamic data डालता है। यानी जब कोई user किसी web page को open करता है, तो Servlet उसके लिए page के अंदर content dynamically insert कर देता है।
What is HTML?
HTML (HyperText Markup Language) एक markup language है जिसका use web pages को structure देने के लिए किया जाता है। इसके अंदर headings, paragraphs, links, tables, forms आदि define किए जाते हैं। HTML static होती है, यानी एक बार file बना दी, तो उसका content manually बदलना पड़ता है।
Example के तौर पर अगर आपने एक student information page बनाया है जिसमें name और marks लिखे हैं, तो HTML file में वो fixed रहेंगे जब तक आप खुद edit न करें।
Example of HTML Code:
<html>
<body>
<h2>Student Information</h2>
<p>Name: Rajesh</p>
<p>Marks: 85</p>
</body>
</html>
ऊपर का code एक static page बनाएगा जो हमेशा वही data दिखाएगा — Rajesh और 85 marks। लेकिन अगर हम चाहते हैं कि हर student के लिए data अलग-अलग दिखे, तो यहाँ Servlet की जरूरत पड़ती है।
What is Servlet?
Servlet एक Java class होती है जो server पर run होती है और dynamic web content generate करती है। यह client (browser) से request लेती है, उसे process करती है और response वापस भेजती है। Servlet Java EE (Jakarta EE) का हिस्सा है और web application development के लिए powerful tool है।
Servlet का काम है — client से आने वाली request को handle करना, business logic execute करना, और HTML response generate करके वापस browser को भेजना।
Servlet का Basic Flow:
- User browser में request भेजता है (जैसे login form submit करना)।
- Web server उस request को Servlet तक पहुँचाता है।
- Servlet request data process करता है (जैसे database से info निकालना)।
- Servlet HTML response generate करके वापस भेज देता है।
Servlet Life Cycle
हर Servlet का एक life cycle होता है जिसे Servlet container manage करता है (जैसे Tomcat)। Servlet life cycle को समझना जरूरी है क्योंकि यही define करता है कि Servlet कैसे load होता है, execute होता है और destroy होता है।
Servlet Life Cycle के मुख्य Methods:
- init() – Servlet को initialize करने के लिए।
- service() – हर request को handle करने के लिए।
- destroy() – Servlet को memory से remove करने के लिए।
Servlet Life Cycle Diagram:
Browser → Web Server → Servlet Container → Servlet (init → service → destroy)
HTML और Servlet का Integration
HTML और Servlet को connect करना बहुत आसान है। HTML form user से input लेता है, और Servlet उस input को process करके response generate करता है। HTML file client-side पर होती है जबकि Servlet server-side पर run होता है।
Example: HTML Form से Servlet को Data भेजना
<form action="StudentServlet" method="post">
Name: <input type="text" name="uname"><br>
Marks: <input type="text" name="marks"><br>
<input type="submit" value="Submit">
</form>
ऊपर के form में user से name और marks लिए जा रहे हैं। जब user “Submit” करेगा, तो यह data “StudentServlet” को भेज दिया जाएगा।
Servlet Code (StudentServlet.java):
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class StudentServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String name = req.getParameter("uname");
String marks = req.getParameter("marks");
out.println("<html><body>");
out.println("<h2>Student Details</h2>");
out.println("Name: " + name + "<br>");
out.println("Marks: " + marks + "<br>");
out.println("</body></html>");
}
}
अब जब कोई user form submit करेगा, Servlet dynamic HTML generate करके उस student के name और marks show करेगा। यानी हर बार user के input के हिसाब से page का content बदल जाएगा।
Servlet vs JSP
कई बार exam में पूछा जाता है कि Servlet और JSP में क्या फर्क है। दोनों dynamic web pages generate करने के लिए use होते हैं, लेकिन दोनों का approach अलग है।
| Aspect | Servlet | JSP |
|---|---|---|
| Technology Type | Java Class | HTML + Java Code |
| Syntax | Pure Java | HTML based |
| Use Case | Business Logic | Presentation Layer |
| File Extension | .java | .jsp |
| Ease of Coding | Harder (more Java code) | Easier (mix of HTML & Java) |
In short, Servlet logic handle करता है जबकि JSP presentation handle करता है। लेकिन दोनों मिलकर powerful dynamic web application बनाते हैं।
Servlet के Benefits
- Dynamic Content: हर user के लिए अलग page content generate करता है।
- Platform Independent: Servlet Java पर based है, इसलिए किसी भी OS पर run कर सकता है।
- Scalable: Large scale web applications के लिए suitable।
- Secure: Servlet request और response को सुरक्षित तरीके से manage करता है।
- Integration: Servlet आसानी से Database, API और अन्य components से connect हो सकता है।
Real-life Use Cases
- Online Examination Systems (student login, score calculation, result display)
- E-commerce Websites (user cart, product filtering, checkout)
- Banking Applications (balance check, transaction records)
- College Management System (attendance, result, feedback system)
Servlet Response Methods
Servlet में response generate करने के कई तरीके हैं। सबसे common तरीका है HttpServletResponse class का use करना।
Commonly Used Methods:
- setContentType(String type): Response का content type set करता है जैसे "text/html"।
- getWriter(): Output stream देता है जिससे HTML content लिखा जा सके।
- sendRedirect(): किसी दूसरे page पर redirect करने के लिए।
- setHeader(): Response header set करने के लिए।
Example:
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<h3>Welcome to Servlet Response Example</h3>");
Servlet Architecture Overview
Servlet architecture 3 layers में काम करती है:
- Client Layer: User interface जैसे HTML form या browser request।
- Controller Layer: Servlet जो request process करता है।
- Model Layer: Database या business logic जहाँ से actual data आता है।
इस architecture को हम MVC (Model-View-Controller) model कहते हैं। Servlet controller की तरह काम करता है जो HTML (View) और Java logic (Model) के बीच coordination करता है।
Servlet Deployment (web.xml Configuration)
Servlet को deploy करने के लिए web.xml file में mapping define करनी होती है ताकि web server को पता चले कि कौन-सी request किस Servlet को भेजनी है।
Example web.xml Configuration:
<web-app>
<servlet>
<servlet-name>StudentServlet</servlet-name>
<servlet-class>StudentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>StudentServlet</servlet-name>
<url-pattern>/StudentServlet</url-pattern>
</servlet-mapping>
</web-app>
इस mapping के बाद जब user “/StudentServlet” URL hit करेगा, तो Tomcat automatically StudentServlet class को execute करेगा।
Best Practices for Servlet
- Business logic को Servlet से अलग रखें (MVC architecture follow करें)।
- Database connection को manage करने के लिए Connection Pooling use करें।
- Output को maintain करने के लिए PrintWriter की बजाय JSP या template engine का use करें।
- Security के लिए Input validation जरूर करें।
- Performance बढ़ाने के लिए caching और session management use करें।
Exam के लिए Important Points
- HTML static होती है, Servlet dynamic content generate करता है।
- Servlet का main method होता है
service()। - Servlet web.xml में define होता है या annotation (@WebServlet) से declare किया जा सकता है।
- Servlet container (जैसे Tomcat) Servlet को load और manage करता है।
- Servlet HTML form से data लेकर dynamic output दिखाता है।