How to set a cookie value within JSP using an EL expression?

Edy Bourne picture Edy Bourne · Jan 5, 2014 · Viewed 9.5k times · Source

I'm trying to set a cookie value within a JSP without using Java code directly. I know I could do it by creating a custom tag lib for that, but I wanted to keep it simple so I'm trying to do that the same way I access cookies: with EL expressions.

I know I can read the value of a cookie using JSP EL with the expression ${cookie['cookieName'].value}, but how can I set a particular value to that cookie using EL? I found solutions using java code in the JSP, but I want to avoid that.

So far I found ways to set variables using the c:set tag, but that doesn't accept expressions as the 'var' parameter so I can't do something like:

<c:set var="${cookie['cookieName'].value}" value="123" />

I think the way to go is , but I don't know what expression to use for the var part of it, or how to write it so I can set the cookie value instead of just a variable.

Any help is appreciated!

Answer

Loc picture Loc · Jan 6, 2014

There is no standard expression to set cookie in JSP. You can use custom tag if you want OR use JSP script-less

<%

    javax.servlet.http.Cookie cookie 
           = new javax.servlet.http.Cookie("name", "value");

    // cookie.setXXX()

    response.addCookie(cookie);

%>

NOTE: Make sure cookie is added BEFORE the response is committed.