Core Uses of Servlets: Dynamic Content, REST APIs, Authentication, and Filters
Core Uses of Servlets: Dynamic Content, REST APIs, Authentication, and Filters
Servlets क्या होते हैं और ये क्यों ज़रूरी हैं?
Servlets Java-based server-side programs होते हैं जो web applications में client और server के बीच communication संभालते हैं। जब भी user browser से कोई request भेजता है, servlet उसे receive करके process करता है और proper response वापस भेजता है।
Servlets की सबसे खास बात यह है कि ये dynamic content generate कर सकते हैं — मतलब, content user के अनुसार बदल सकता है। यही reason है कि आज भी Servlets कई enterprise-level applications में core technology के रूप में use होते हैं।
1. Dynamic Content Generation
Servlets का Dynamic Content में Role
Dynamic content का मतलब है ऐसा content जो हर user के लिए अलग हो सकता है। जैसे कि जब आप किसी e-commerce website पर जाते हैं, तो आपको “Recommended Products” या “Recently Viewed Items” अलग दिखते हैं। ये dynamic content ही है, जो servlets द्वारा generate किया जाता है।
Servlets client की request पढ़ते हैं, database से data fetch करते हैं और फिर dynamically HTML response बनाते हैं। इससे website personalized और interactive बन जाती है।
Dynamic Response कैसे Generate होता है?
- Client browser से HTTP request भेजता है।
- Servlet उस request को receive करके उसका analysis करता है।
- Database या business logic से required data लाया जाता है।
- Servlet उस data को HTML या JSON format में convert करके client को भेज देता है।
Example Code (Dynamic HTML Response)
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DynamicContentServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String user = request.getParameter("name");
out.println("<h2>Welcome " + user + " to our Website!</h2>");
out.close();
}
}
इस example में servlet user के नाम के अनुसार response generate करता है — यानी हर user को अलग message दिखेगा।
Dynamic Content के Benefits
- User experience बेहतर होता है।
- Website personalized लगती है।
- Content real-time update किया जा सकता है।
- Database से live data fetch करना आसान होता है।
2. Servlets for REST APIs
REST API क्या है?
REST (Representational State Transfer) एक architectural style है जो web services create करने के लिए use होता है। जब हम servlets के साथ REST API बनाते हैं, तो वे client को JSON या XML format में data provide करते हैं, ना कि HTML page।
Servlet-based REST API कैसे काम करती है?
- Client (जैसे React App या Mobile App) HTTP request भेजता है।
- Servlet उस request को process करता है।
- Database से JSON data fetch करके response में भेजता है।
Example Code (Simple REST API with Servlet)
@WebServlet("/api/user")
public class UserApiServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/json");
PrintWriter out = response.getWriter();
out.print("{\"name\": \"Ravi Kumar\", \"age\": 22}");
out.flush();
}
}
ऊपर दिए गए example में servlet एक REST API की तरह काम कर रहा है जो JSON data return करता है। ये method modern applications में बहुत popular है क्योंकि ये lightweight और fast है।
REST API में Servlets के Advantages
- Lightweight और High Performance APIs develop होती हैं।
- JSON/XML data exchange आसान होता है।
- Security, Logging और Validation जैसे features easily implement किए जा सकते हैं।
- Any frontend (React, Angular, Flutter) easily connect हो सकता है।
3. Authentication और User Management
Servlets के जरिए Authentication कैसे होता है?
Authentication का मतलब होता है user की identity verify करना। Servlet based applications में ये process बहुत common है, जैसे login systems। Servlet username और password को verify करता है और फिर session create करता है जिससे user authorized area access कर सके।
Example Code (Login Authentication)
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String user = request.getParameter("username");
String pass = request.getParameter("password");
if (user.equals("admin") && pass.equals("12345")) {
HttpSession session = request.getSession();
session.setAttribute("user", user);
response.sendRedirect("dashboard.jsp");
} else {
response.sendRedirect("error.jsp");
}
}
}
इस example में servlet user credentials verify करता है और सही होने पर session create करता है। इससे authorized access secure रहती है।
Authentication में Servlets के Benefits
- Session management आसान बनता है।
- Security filters add करना simple होता है।
- Role-based access control implement किया जा सकता है।
- Cookies या Tokens के जरिए authentication maintain की जा सकती है।
Session Management की Concept Table
| Concept | Purpose |
|---|---|
| Session Object | User data को temporarily store करने के लिए। |
| Cookies | Client-side पर user info store करने के लिए। |
| HttpSession | Server-side session tracking mechanism। |
4. Filters in Servlets
Filters क्या होते हैं?
Filters servlets में एक powerful feature हैं जो request और response के बीच में काम करते हैं। इन्हें pre-processing या post-processing tasks के लिए use किया जाता है — जैसे authentication check, logging, compression, आदि।
Filters कैसे काम करते हैं?
- Client request पहले filter के पास जाती है।
- Filter उस request को modify या validate करता है।
- Valid request को आगे servlet को भेजा जाता है।
- Response वापस आते समय भी filters उसे modify कर सकते हैं।
Example Code (Authentication Filter)
@WebFilter("/dashboard/*")
public class AuthFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
HttpSession session = req.getSession(false);
if (session == null || session.getAttribute("user") == null) {
res.sendRedirect("/login.jsp");
} else {
chain.doFilter(request, response);
}
}
}
ऊपर का filter unauthorized users को सीधे login page पर redirect करता है। ये approach production-level security में बहुत उपयोगी होती है।
Filters के Common Use Cases
- Authentication और Authorization
- Logging और Monitoring
- Request Compression और Decompression
- Input Validation और Sanitization
Filters vs Servlets
| Feature | Servlet | Filter |
|---|---|---|
| Purpose | Request handle करना और response generate करना | Request/response को modify या intercept करना |
| Execution | Request के बाद चलता है | Request आने से पहले और बाद में चलता है |
| Use Case | Dynamic content generation | Authentication, logging, etc. |
5. Servlets के Core Uses का Summary
- Dynamic Content: User-specific content generation के लिए।
- REST APIs: JSON/XML based data exchange के लिए।
- Authentication: Secure login systems और session handling के लिए।
- Filters: Security, validation और logging के लिए।
Exam Point Notes (Quick Revision)
- Servlets server-side programs हैं जो web requests handle करते हैं।
- Dynamic content generation servlets की main strength है।
- REST API के जरिए data exchange fast और lightweight होता है।
- Authentication के लिए sessions और cookies का use किया जाता है।
- Filters pre-processing और post-processing tasks के लिए उपयोगी होते हैं।
- Servlets Java EE architecture का core हिस्सा हैं।
- Servlets multi-threaded environment में efficient performance देते हैं।