File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes JSP and the fly likes Session variable incorrect value Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of REST with Spring (video course) this week in the Spring forum!
JavaRanch » Java Forums » Java » JSP
Bookmark "Session variable incorrect value" Watch "Session variable incorrect value" New topic

Session variable incorrect value

Apreet Singh

Joined: Oct 10, 2012
Posts: 6

I have a drop down <select> in jsp having city names. Current city value comes from session attribute.
On change Java script function is called which through AJAX calls second jsp which updates the session
attribute value with new city.

From it's response I can see correct city value is being passed and attribute is being reset correctly.

But after the first jsp reloads, it is not using correct attribute value.

When I change from Delhi to Gurgaon, it stays Delhi
If I change to Noida, it changes
But then if I try to change to anything else it just stays at Noida

I have spent few hours trying to diagnose but I am not able to get the underlying issue

Kindly suggest what may be wrong


First jsp

Second jsp

Stefan Evans

Joined: Jul 06, 2005
Posts: 1519
Your browser is caching the responses to your ajax calls. You can see this if you add logging into your second JSP.
The first couple work, but after that, it just returns a cached response without actually invoking the server.



The rules of caching are different for get and post requests.
GET is assumed to be cachable.
POST for the most part is not.
If you are actually changing something (which you are) you should POST, rather than GET.

If that doesn't work then take a look at the JSP FAQ: No-Cache Headers
Apreet Singh

Joined: Oct 10, 2012
Posts: 6
Thanks a lot Stefan Evans.

By changing request type to POST , it's working fine.
subject: Session variable incorrect value
It's not a secret anymore!