7.B] Explain how to read servlet parameters with an example
Answer:
Note: if difficult to understand, Reading Form Parameters is enough
In a servlet, parameters are often sent from the client (e.g., via an HTML form) and can be accessed using the HttpServletRequest
object. Parameters can be accessed in a variety of ways, depending on whether they are query parameters, form parameters, or parameters from a URL.
Here’s a breakdown of how to read servlet parameters:
1. Query Parameters
- Purpose: Parameters included in the URL after the
?
(query string). Example URL:http://example.com/servlet?param1=value1¶m2=value2
. - Method to Use:
getParameter(String name)
- Example Code:
import javax.servlet.*; import javax.servlet.http.*; import java.io.IOException; public class QueryParamServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Retrieve query parameters String param1 = req.getParameter("param1"); String param2 = req.getParameter("param2"); // Set content type and write response res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("<html><body>"); out.println("<h1>Query Parameters</h1>"); out.println("<p>param1: " + param1 + "</p>"); out.println("<p>param2: " + param2 + "</p>"); out.println("</body></html>"); } }
2. Form Parameters
- Purpose: Parameters sent via an HTML form using either the GET or POST method.
- Method to Use:
getParameter(String name)
- Example HTML Form:
<form action="formServlet" method="post"> <label for="name">Name:</label> <input type="text" id="name" name="name"> <label for="age">Age:</label> <input type="text" id="age" name="age"> <input type="submit" value="Submit"> </form>
- Example Servlet Code:
import javax.servlet.*; import javax.servlet.http.*; import java.io.IOException; public class FormParamServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Retrieve form parameters String name = req.getParameter("name"); String age = req.getParameter("age"); // Set content type and write response res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("<html><body>"); out.println("<h1>Form Parameters</h1>"); out.println("<p>Name: " + name + "</p>"); out.println("<p>Age: " + age + "</p>"); out.println("</body></html>"); } }
3. URL Path Parameters
- Purpose: Parameters included in the URL path, typically used with URL rewriting or RESTful web services.
- Method to Use:
getPathInfo()
,getServletPath()
- Example URL:
http://example.com/servlet/path/to/resource
- Example Servlet Code:
import javax.servlet.*; import javax.servlet.http.*; import java.io.IOException; public class PathParamServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Retrieve path info String pathInfo = req.getPathInfo(); // Set content type and write response res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("<html><body>"); out.println("<h1>Path Parameters</h1>"); out.println("<p>Path Info: " + pathInfo + "</p>"); out.println("</body></html>"); } }
Summary
- Query Parameters:
- Accessed using
req.getParameter("paramName")
. - Sent as part of the URL after the
?
.
2. Form Parameters:
- Accessed using
req.getParameter("paramName")
. - Sent via an HTML form with
method="post"
ormethod="get"
.
3. URL Path Parameters:
- Accessed using
req.getPathInfo()
orreq.getServletPath()
. - Included in the URL path, often used in RESTful services.