Solved

Is it possible to set a session attribute in a JSP and then recall it when the page is loader at a later time?

Posted on 2009-05-04
8
442 Views
Last Modified: 2013-11-24
Is it possible to set a session attribute in a JSP and then recall it when the page is loader at a later time?
My attribute is actually set below where it is gotten.  Its okay if the first load of the page is null but when the page is returned to in a minute or so, I would like to get the value when I reload the page.  Here is are the lines of code as they appear in my JSP:

My flag value is <%=  session.getAttribute("relatedCasesFlag")%>

<% session.setAttribute("myVisitFlag", Boolean.valueOf(true)); %>
0
Comment
Question by:jwright9
  • 5
  • 3
8 Comments
 
LVL 27

Expert Comment

by:rrz
ID: 24299619
Yes, a session-scoped object will be around for the whole session.  
Please restate your question. It is not clear.
0
 

Author Comment

by:jwright9
ID: 24299710
Sure I'll be glad to restate it.   I want to set a flag when a user first visits a page.  The flag is set to true and I put the value of myVisitFlag to true.

<% session.setAttribute("myVisitFlag", Boolean.valueOf(true)); %>

When the user visits the page again, the flag will be set to true.  In my page's JSP code, I have put the line you see below above the line where the value is put in the session.

My flag value is <%=  session.getAttribute("relatedCasesFlag")%>  

If the flag is true the page has been visited before and my other code behaves how I need it to when the page has been visited already.  Hope this helps.  Thanks for your help.

0
 
LVL 27

Expert Comment

by:rrz
ID: 24300063
I am still unclear as to what you are trying to do here.  You don't need to create a flag in order to know if the user has joined the session and has returned to the page. See code below here.
<html>
<body>
<%
  if(session.isNew()){
                      out.print("This is your first visit for this session.");
  }else out.print("This is a repeat visit for this session.");
%>
</body>
</html>

Open in new window

0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Author Comment

by:jwright9
ID: 24300108
I insert this code in my page but it did not work.  It definitely should work I would think.  I am working inside of RAD 7.  I ran the application in a separate browser and it still did not work.
0
 

Author Comment

by:jwright9
ID: 24300158
Oh one other thing.  I not concerned if the session is new or not.   I want a flag so that when the user goes up in the page "hierarchy" I can reset the flag so that things are reset back to normal until the user visits the page again and drills down into links on the page.
0
 
LVL 27

Accepted Solution

by:
rrz earned 500 total points
ID: 24300387
Please try this code and tell us if it is closer to what you want to accomplish. I have shown two ways. Sometimes it is clearer  to use Strings instead of the Boolean object.
<html>
<body>
<%
  Boolean myVisitFlag = (Boolean)session.getAttribute("myVisitFlag");
  if(myVisitFlag == null){
                          session.setAttribute("myVisitFlag", new Boolean(false));
                          myVisitFlag = new Boolean(false);
  }
  if(myVisitFlag) out.print("This is a repeat visit for this session.");
  else{
       out.print("This is your first visit for this session or the flag has been reset.");
       session.setAttribute("myVisitFlag", new Boolean(true)); 
   }
%>
<br/>
<%
  String flag = (String)session.getAttribute("flag");
  if(flag == null){
                          session.setAttribute("flag", "false");
                          flag = "false";
  }
  if("true".equals(flag)) out.print("This is a repeat visit for this session, using String flag.");
  else{
       out.print("This is your first visit for this session or the flag has been reset, using String flag.");
       session.setAttribute("flag", "true"); 
   }
%>
</body>
</html>

Open in new window

0
 

Author Comment

by:jwright9
ID: 24336508
This helped thanks rrz@871311.  There was a process that was clearing out the "unregistered" name value pairs from the session.  I really appreciate the effort that you put forth and the example code helped me understand the situation much better.  Cheers.
0
 

Author Closing Comment

by:jwright9
ID: 31577774
This person is a great teacher.  
0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
SASS allows you to treat your CSS code in a more OOP way. Let's have a look on how you can structure your code in order for it to be easily maintained and reused.
In this tutorial viewers will learn how to style transparent/translucent elements using alpha transparency in CSS Start with a normal styled element, such as a div.: Define its "background-color" property as "rgba (255, 255, 255, .5): The numbers in…
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

803 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question