Reading GET Parameters: getParameter(), getParameterValues(), getQueryString()
GET Parameters in Servlet: getParameter(), getParameterValues(), getQueryString()
GET Parameters क्या होते हैं?
Servlet में जब हम client (जैसे browser) से data भेजते हैं, तो वो data URL के साथ query string के रूप में जाता है। इस data को हम GET Parameters कहते हैं। ये parameters URL के बाद ? के बाद लिखे जाते हैं, और key-value pair के रूप में होते हैं।
उदाहरण के लिए अगर URL ऐसा है:
https://example.com/student?name=Ravi&roll=101
तो यहाँ name और roll हमारे GET parameters हैं।
Servlet में इन parameters को कैसे पढ़ते हैं?
Servlet API हमें तीन main methods देता है जिनसे हम GET parameters को access कर सकते हैं:
getParameter(String name)getParameterValues(String name)getQueryString()
1. getParameter() Method
Purpose: किसी single parameter की value प्राप्त करने के लिए।
Syntax:
String value = request.getParameter("parameterName");
Explanation:
यह method तब use होती है जब हमें किसी form field या URL parameter की single value चाहिए। उदाहरण के लिए, अगर user का name या roll number लेना है।
Example:
@WebServlet("/studentInfo")
public class StudentServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
String name = request.getParameter("name");
String roll = request.getParameter("roll");
response.getWriter().println("Name: " + name);
response.getWriter().println("Roll: " + roll);
}
}
Browser Output:
अगर URL है http://localhost:8080/studentInfo?name=Ravi&roll=101
तो output होगा:
- Name: Ravi
- Roll: 101
Key Points:
- अगर parameter exist नहीं करता तो method
nullreturn करती है। - अगर same parameter multiple बार लिखा गया हो, तो ये method first value return करती है।
2. getParameterValues() Method
Purpose: किसी parameter की multiple values प्राप्त करने के लिए।
Syntax:
String[] values = request.getParameterValues("parameterName");
Explanation:
यह method तब काम आती है जब कोई form field multiple values भेजता है, जैसे checkboxes या multi-select dropdown।
Example:
@WebServlet("/courseSelection")
public class CourseServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
String[] courses = request.getParameterValues("course");
PrintWriter out = response.getWriter();
out.println("Selected Courses:");
if(courses != null){
for(String c : courses){
out.println(c);
}
}
}
}
Example URL:
http://localhost:8080/courseSelection?course=Java&course=Python&course=HTML
Browser Output:
- Selected Courses:
- Java
- Python
- HTML
Key Points:
- यह हमेशा
String[]array return करती है। - अगर parameter नहीं मिला तो यह
nullreturn करती है। - Checkboxes या multiple dropdowns के लिए यह method बहुत useful है।
3. getQueryString() Method
Purpose: URL की पूरी query string को एक single string के रूप में प्राप्त करने के लिए।
Syntax:
String query = request.getQueryString();
Explanation:
यह method पूरी query को return करती है, यानी URL में ? के बाद जो भी लिखा है। इसमें keys और values दोनों शामिल रहते हैं।
Example:
@WebServlet("/queryDemo")
public class QueryServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
String query = request.getQueryString();
response.getWriter().println("Query String: " + query);
}
}
Example URL:
http://localhost:8080/queryDemo?name=Ravi&roll=101&course=Java
Browser Output:
Query String: name=Ravi&roll=101&course=Java
Key Points:
- यह सिर्फ URL की string return करती है, parsed data नहीं।
- यह debug या logging के लिए काफी helpful है।
- अगर URL में कोई query नहीं है तो यह
nullreturn करती है।
Comparison Table: getParameter(), getParameterValues(), getQueryString()
| Method | Return Type | Used For | Example Output |
|---|---|---|---|
getParameter() |
String | Single value parameters | Ravi |
getParameterValues() |
String[] | Multiple value parameters | [Java, Python, HTML] |
getQueryString() |
String | Entire query string | name=Ravi&roll=101 |
GET Parameters Servlet में कैसे काम करते हैं?
जब browser किसी Servlet को GET request भेजता है, तो वो URL के साथ parameters attach करता है। Servlet container (जैसे Tomcat) इन parameters को automatically parse कर देता है और HttpServletRequest object में store करता है। फिर हम getParameter() जैसी methods से इन values को आसानी से निकाल सकते हैं।
Working Flow:
- User URL के साथ data भेजता है →
http://localhost:8080/student?name=Ravi&roll=101 - Server Servlet को request भेजता है।
- Container request को parse करके HttpServletRequest बनाता है।
- Servlet code parameters को methods से access करता है।
Example: HTML Form with GET Method
Explanation:
जब user इस form को submit करता है, तो data URL के साथ browser में चला जाता है। जैसे:
http://localhost:8080/studentInfo?name=Ravi&roll=101
Servlet इस data को request.getParameter("name") और request.getParameter("roll") से पढ़ लेता है।
Important Points to Remember
- GET method में data URL में दिखाई देता है, इसलिए यह secure नहीं है।
- GET small data transfer के लिए अच्छा होता है, जैसे search query, filters आदि।
- GET parameters caching में helpful होते हैं क्योंकि URL same होने पर browser cache रख सकता है।
- Server log में parameters दिखाई देते हैं, इसलिए sensitive data भेजने से बचें।
- URL की length limit होती है (लगभग 2048 characters तक)।
Real-Life Example: Search Page
मान लीजिए एक college site में search feature है। User search box में keyword डालता है और search button दबाता है।
अगर user ने लिखा “Java Servlet”, तो browser भेजेगा:
http://localhost:8080/search?query=Java+Servlet
Servlet code:
@WebServlet("/search")
public class SearchServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
String q = request.getParameter("query");
response.getWriter().println("You searched for: " + q);
}
}
Browser Output:
You searched for: Java Servlet
GET और POST में अंतर
| Factor | GET | POST |
|---|---|---|
| Data Transfer | URL के साथ जाता है | Request body में जाता है |
| Security | कम secure | ज्यादा secure |
| Speed | Fast | थोड़ा slow |
| Use Case | Data fetching | Data submission |
Exam Notes: GET Parameters, getParameter(), getParameterValues(), getQueryString()
- GET Parameters: URL में भेजे गए key-value data।
- getParameter(): किसी single value को पढ़ने के लिए।
- getParameterValues(): किसी parameter की multiple values के लिए।
- getQueryString(): पूरी query string को return करता है।
- GET method readable और fast होती है लेकिन sensitive data के लिए safe नहीं।
- URL length limit होती है, इसलिए बड़े data के लिए POST use करना चाहिए।
- Exam में अक्सर पूछा जाता है — difference between getParameter() and getParameterValues()।
- Real life use: search box, filter options, category selection।