Real-World Applications: Form Processing, File Upload, Session Tracking
Servlets in Real-World Applications: Form Processing, File Upload, Session Tracking
आज हम बात करने वाले हैं कि Servlets को real-world web applications में कैसे use किया जाता है — जैसे कि form data process करना, file upload करना और user session को track करना। ये सारे concepts practically बहुत important हैं, खासकर अगर आप Java Web Development या Servlet Programming exam की तैयारी कर रहे हो। चलिए step-by-step हर topic को आसान हिंदी और थोड़ा English mix के साथ समझते हैं।
Form Processing using Servlet
जब भी कोई user किसी website पर form भरता है — जैसे login form, feedback form या registration form — तो वो data server तक पहुँचाने और process करने का काम Servlet करती है। Servlet basically server-side Java program होता है जो HTTP request को receive करता है और response भेजता है।
How Form Data Reaches Servlet
Form से data दो methods के ज़रिए Servlet तक पहुँचता है — GET और POST।
- GET Method: Data URL में दिखाई देता है। ये method छोटे data (जैसे search query) के लिए use होता है।
- POST Method: Data body के अंदर भेजा जाता है। इसे confidential या large data (जैसे passwords, files) के लिए use किया जाता है।
Example of HTML Form
<form action="LoginServlet" method="post">
Username: <input type="text" name="uname"><br>
Password: <input type="password" name="pass"><br>
<input type="submit" value="Login">
</form>
अब यह form data "LoginServlet" तक जाएगा। Servlet इस data को read करके logical processing करता है।
Servlet Code to Process Form
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String name = req.getParameter("uname");
String pass = req.getParameter("pass");
if(pass.equals("admin123")) {
out.println("Welcome " + name);
} else {
out.println("Invalid Password!");
}
out.close();
}
}
यहाँ Servlet form data को request object से निकालता है और validation करता है। ऐसे ही registration, feedback या contact forms भी process किए जाते हैं।
Key Points:
- Form Data को access करने के लिए
getParameter()method का use होता है। - Servlets हमेशा
HttpServletclass को extend करती हैं। - Form processing के बाद server dynamic HTML response भेजता है।
File Upload using Servlet
Modern websites में file upload feature बहुत common है — जैसे resume upload, image upload, या document submission। Servlet की मदद से हम files को server पर store कर सकते हैं।
Enabling File Upload
File upload करने के लिए HTML form में enctype="multipart/form-data" attribute होना चाहिए। Servlet को multipart request handle करने के लिए Apache Commons FileUpload library का use किया जाता है।
Example HTML Form for File Upload
<form action="UploadServlet" method="post" enctype="multipart/form-data">
Select File: <input type="file" name="file"><br>
<input type="submit" value="Upload">
</form>
Servlet Code for File Upload
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;
import java.util.*;
public class UploadServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List<FileItem> items = upload.parseRequest(request);
for (FileItem item : items) {
if (!item.isFormField()) {
String name = new File(item.getName()).getName();
item.write(new File("C:/uploads/" + name));
out.println("File Uploaded Successfully: " + name);
}
}
} catch (Exception e) {
out.println("File Upload Failed: " + e.getMessage());
}
}
}
यह Servlet file को receive करता है और server के specific folder में store कर देता है। यह process backend में automatic होती है, और user को confirmation message मिलता है।
Key Points:
- File upload के लिए
enctype="multipart/form-data"जरूरी है। - Apache Commons FileUpload API use करनी पड़ती है।
- Uploaded files को server directories में store किया जाता है।
- Security के लिए file type और size validation जरूरी है।
Session Tracking using Servlet
Web applications में HTTP protocol stateless होता है — मतलब server को याद नहीं रहता कि user कौन है। लेकिन जब user login करता है और pages navigate करता है, तो उसे पहचानने के लिए Session Tracking का use किया जाता है।
What is a Session?
Session basically एक temporary storage होता है जहाँ server user की information को तब तक रखता है जब तक user active रहता है। जब user logout करता है या session expire होता है, data delete हो जाता है।
Different Ways of Session Tracking
- Cookies: Client-side text file होती है जो user data store करती है।
- URL Rewriting: Session id को URL में append किया जाता है।
- Hidden Form Fields: Form में hidden data के रूप में session info भेजी जाती है।
- HttpSession: सबसे secure और popular तरीका है session manage करने का।
Example Using HttpSession
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SessionServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String name = req.getParameter("uname");
HttpSession session = req.getSession();
session.setAttribute("user", name);
out.println("Session Created for: " + name);
}
}
Accessing Session Data in Another Servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class WelcomeServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
HttpSession session = req.getSession(false);
String user = (String) session.getAttribute("user");
out.println("Welcome back, " + user);
}
}
इस example में SessionServlet user के लिए session create करता है और WelcomeServlet उसे retrieve करता है। इससे user पहचान में बना रहता है।
Key Points:
HttpSessionobject automatically create होता है।- Session timeout को web.xml में configure किया जा सकता है।
session.invalidate()method से session manually destroy किया जा सकता है।
Real-World Implementation
अब देखिए, इन तीनों concepts का practical use हर web application में होता है:
| Feature | Servlet Use | Example Application |
|---|---|---|
| Form Processing | User data validation & storage | Login, Registration, Feedback forms |
| File Upload | File handling & storage | Profile photo, Resume upload |
| Session Tracking | User authentication & continuity | Online shopping carts, Dashboards |
Why Servlets are Preferred
- Fast and efficient communication between client and server।
- Secure session management।
- Dynamic content generation।
- Platform independent and reusable code।
Exam-Oriented Notes
- Servlets server-side programs हैं जो request और response handle करते हैं।
- Form data read करने के लिए
getParameter()method use होती है। - File upload के लिए Apache Commons FileUpload library जरूरी है।
- Session management के लिए
HttpSessionclass सबसे ज़्यादा use होती है। - HTTP protocol stateless होता है, इसलिए session tracking जरूरी होता है।
- Servlet life cycle methods हैं:
init(),service(),destroy()। - File upload में
multipart/form-dataencoding जरूरी है। - Session timeout default 30 minutes होता है।
- Cookies और URL rewriting alternate tracking methods हैं।
- Practical exam में Servlet-based login system बहुत common question है।