The JSTL v1.0 makes all existing request headers available
via the headerimplicit
object. The JSTL automatically makes this variable available to JSPs; the header
object evaluates to a java.util.Map type.

In sample program below, the c:forEach tag iterates
over this Map and stores each header name and value in the loop
variable named by c:forEach's var attribute. The c:forEach
var attribute is implemented as a java.util.Map.Entry type, which
is a data type that stores keys and their values. The c:out tag
displays each header name by using EL format: ${req.key}. Consequently c:out
displays the value with ${req.value}.