Getting Cookies and init params
We’ve looked at all the implicit objects except cookies and init params, so here we are. And yes, any of the implicit objects can show up on the exam.
Printing the value of the “userName” Cookie
We know we can do it with scripting
<% Cookie[] cookies = request.getCookies(); for (int i = 0; i < cookies.length; i++) { if ((cookies[i].getName()).equals("userName")) { out.println(cookies[i].getValue()); } } %>
Note
This is kind of a pain, because the request object does NOT have a getCookie(cookieName) method! We have to get the whole Cookie array and iterate through it ourselves.
But with EL, we’ve got the Cookie implicit object
${cookie.userName.value}
Note
WAY easier. Just give it the name, and the value comes back from the Map of Cookie names/values.
Printing the value of a context init parameter
We have to configure the parameter in the DD
<context-param> <param-name>mainEmail</param-name> <param-value>likewecare@wickedlysmart.com</param-value> </context-param>
Note
Remember. this is how you configure context (app-wide) parameters. These are NOT the same as servlet init params.
We know we can do it with scripting
email is: <%= application.getInitParameter("mainEmail") %>
And with EL, it’s even easier
email is: ${initParam.mainEmail}
Note
The EL initParam is NOT for params configured using <init-param> !
Here’s what’s confusing: servlet init params are configured using <init-param> while context params use <context-param> but the EL implicit “initParam” is for context ...
Get Head First Servlets and JSP, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.