[ Team LiB ] Previous Section Next Section

Recipe 23.11 Using the EL to Access Request Headers


You want to use the EL to access the value of various HTTP request headers.


Use the header implicit object that the EL makes available for custom tags.


The header implicit object is a java.util.Map type that contains a request header value mapped to each header key (which is the header name, such as "accept" or "user-agent"). Web clients (usually browsers) send these headers or name/value pairs along with the web address of the page they are interested in.

Example 23-12 uses the c:forEach iteration tag to cycle through each of the Map's stored request headers. The variable reqHead stores the current header/value pair. The code uses the EL to display the header name ("${reqHead.key}") and header value ("${reqHead.value}").

Example 23-12. Using the JSTL to display request headers
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

<head><title>Request header display</title></head>
<h2>Here are all the Request Headers</h2>

<%-- 'header' represents a java.util.Map type holding request-header names and values --%>
<c:forEach var="reqHead" items="${header}">

    <strong><c:out value=
        "${reqHead.key}"/></strong>: <c:out value="${reqHead.value}"/><br />


Figure 23-7 shows the result of requesting this JSP in a web browser.

Figure 23-7. Displaying request headers in a JSP

See Also

Chapter 18 on working with the client request; the Jakarta Project's Taglibs site: http://jakarta.apache.org/taglibs/index.html; Sun Microsystem's JSTL information page: http://java.sun.com/products/jsp/jstl/; Recipe 23.3 on using the core tags; Recipe 23.4 and Recipe 23.5 on using the XML tags; Recipe 23.6 on using the formatting tags; Recipe 23.4 and Recipe 23.5 on using the SQL JSTL tags; Recipe 23.12-Recipe 23.14 on using the EL to access one request header, cookies, and JavaBean properties.

    [ Team LiB ] Previous Section Next Section