Nearby lessons

9 of 34

Servlet - ServletRequest (Form Parameters, Headers, Cookies)

📌 What You Will Learn
  • Retrieve form parameters (single and multi-valued)
  • Retrieve request headers (String, int, and Date)
  • Retrieve cookies from the request
  • Get client and server information

ServletRequest provides methods to retrieve form parameters, request headers, cookies, and client/server information. This lesson covers all retrieval methods with complete code examples.

Retrieving Form Parameters

Form parameters are key-value pairs where both key and value are String objects. A parameter can have single or multiple values.

MethodReturnsNotes
getParameter(String pname)Single String valueReturns first value if multi-valued; null if not found; argument is case-sensitive
getParameterValues(String pname)String[] arrayReturns all values; null if not found; argument is case-sensitive
getParameterNames()Enumeration of all parameter names
getParameterMap()Map objectContains all parameter names and values
Example01
JCode Cell
1 
2public String getParameter(String pname)
3public String[] getParameterValues(String pname)
4public Enumeration getParameterNames()
5public Map getParameterMap()
6

Demo: register.html

HTML form with single-value (name, contact) and multi-value (course dropdown) parameters:

Example02
JCode Cell
1 
2<html>
3<body bgcolor=green text=white><center><h1>Durga Software Solutions:Registration form</h1></center>
4<form action = "/advapps1D/test" method="GET">
5<table border=0>
6<tr><td>Enter Name :</td><td><input type=text name=uname></td></tr>
7<tr><td>Enter contact number:</td><td>
8<input type=text name=ucontact></td></tr>
9<tr><td>Enter Course:</td><td>
10<select name=course multiple>
11<option value=CoreJava>Core Java</option>
12<option value=AdvJava>Advanced Java</option>
13<option value=Hibernate>HIBERNATE</option>
14<option value=Spring>SPRING</option>
15<option value=WebServices>Web Services</option>
16</select></td></td>
17<tr><td><input type=submit></td><td></td></tr></table>
18</form>
19</body>
20</html>
21

FormDemoServlet.java

Folder structure: advapps1D/ → register.html, WEB-INF/ → classes/ → FormDemoServlet.class

Example03
JCode Cell
1 
2import javax.servlet.*;
3import javax.servlet.http.*;
4import java.io.*;
5import javax.servlet.annotation.*;
6@WebServlet("/test")
7public class FormDemoServlet extends HttpServlet
8{
9public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException
10{
11PrintWriter out = resp.getWriter();
12String username=req.getParameter("uname");
13String usercontact=req.getParameter("ucontact");
14out.println("<h1>User Name:"+username+"<br>");
15out.println("User Contact:"+usercontact+"<br>");
16String[] s = req.getParameterValues("course");
17out.println("Your Selected Courses:<br/>");
18for(String s1 : s)
19{
20out.println(s1+"<br>");
21}
22out.println("</h1>");
23}
24 
25}
26

Retrieving Request Headers

For every request, the browser sends configuration information in the form of headers — media types accepted, encoding types, accepted languages, browser type, etc.

Common request headers:

  • accept — media types accepted by browser (html, pdf, images, etc.)
  • accept-encoding — encoding types accepted (gzip, deflate, etc.)
  • accept-language — language types accepted (en-us, etc.)
  • user-agent — type of browser
  • cookie — used to send cookies for session management

Utilities of request headers:

  • accept-encoding: Server sends compressed data, reducing download time
  • user-agent: Server sends browser-specific customized response
  • cookie: Server uses cookies for session management
Example04
JCode Cell
1 
2accept:media types accepted by browser (like html,pdf,images etc..)
3

Header Retrieval Methods

MethodReturnsNotes
getHeader(String hname)Single String valuenull if not found; first value if multi-valued; argument is case-insensitive
getHeaders(String hname)Enumeration of all valuesEmpty Enumeration (not null) if not found; argument is case-insensitive
getHeaderNames()Enumeration of all header names
getIntHeader(String hname)int valueFor headers with integer values (e.g. content-length)
getDateHeader(String hname)long (milliseconds since Jan 1, 1970)For headers with Date values
Example05
JCode Cell
1 
2public String getHeader(String hname)
3public Enumeration getHeaders(String hname)
4public Enumeration getHeaderNames()
5public int getIntHeader(String hname)
6public long getDateHeader(String hname)
7

RequestHeaderDemoServlet.java

Folder structure: advapps1E/ → WEB-INF/ → classes/ → RequestHeaderDemoServlet.class

Displays all request headers in an HTML table:

Example06
JCode Cell
1 
2import javax.servlet.*;
3import javax.servlet.http.*;
4import java.io.*;
5import java.util.*;
6import javax.servlet.annotation.*;
7@WebServlet("/test")
8public class RequestHeaderDemoServlet extends HttpServlet
9{
10public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException
11{
12PrintWriter out = resp.getWriter();
13out.println("<h1>Request Headers Information</h1></hr>");
14out.println("<table border=2><tr><th>HeaderName</th><th>Header values</th></tr>");
15Enumeration e = req.getHeaderNames();
16while(e.hasMoreElements())
17{
18String hname = (String)e.nextElement();
19String hvalue=req.getHeader(hname);
20out.println("<tr><td>"+hname+"</td><td>"+hvalue+"</td></tr>");
21}
22out.println("</table></body></html>");
23}
24}
25

Retrieving Cookies

The HttpServletRequest interface provides a method to retrieve cookies from the request:

Cookie[] c = req.getCookies();

Retrieving Client and Server Information

ServletRequest defines methods to get client and server information:

MethodReturns
getRemoteHost()Fully qualified name of the client
getRemoteAddr()IP address of the client
getRemotePort()Port number on which client is running
getServerName()Server name to which request was sent
getServerPort()Port number on which server is running
Example08
JCode Cell
1 
2public String getRemoteHost()
3public String getRemoteAddr()
4public int getRemotePort()
5public String getServerName()
6public int getServerPort()
7

ClientServerInfoServlet.java

Folder structure: advapps1E/ → WEB-INF/ → classes/ → ClientServerInfoServlet.class

Example09
JCode Cell
1 
2import javax.servlet.*;
3import javax.servlet.http.*;
4import java.io.*;
5import javax.servlet.annotation.*;
6@WebServlet("/test")
7public class ClientServerInfoServlet extends HttpServlet
8{
9public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException
10{
11PrintWriter out = resp.getWriter();
12out.println("<h1>Client IP Address:" +req.getRemoteAddr()+"</h1>");
13out.println("<h1>Client Host:" +req.getRemoteHost()+"</h1>");
14out.println("<h1>Client Port" +req.getRemotePort()+"</h1>");
15out.println("<h1>Server Name:" +req.getServerName()+"</h1>");
16out.println("<h1>Server Port:" +req.getServerPort()+"</h1>");
17}
18}
19

Summary: Retrieval Methods

To Retrieve Form Parameters:

  • getParameter()
  • getParameterValues()
  • getParameterNames()
  • getParameterMap()

To Retrieve Request Headers:

  • getHeader()
  • getHeaders()
  • getHeaderNames()
  • getIntHeader()
  • getDateHeader()

To Retrieve Cookies:

  • Cookie[] c = req.getCookies();

To Retrieve Client and Server Information:

  • getRemoteHost()
  • getRemoteAddr()
  • getRemotePort()
  • getServerName()
  • getServerPort()
📝 Key Takeaways
  • 4 parameter methods: getParameter, getParameterValues, getParameterNames, getParameterMap
  • 5 header methods: getHeader, getHeaders, getHeaderNames, getIntHeader, getDateHeader
  • Client info: getRemoteHost, getRemoteAddr, getRemotePort, getServerName, getServerPort
  • Exam-style questions at the end

🧠 Test Your Knowledge

3 Questions
Progress: 0 / 3