Solved

avoiding redefinition of session scoped object

Posted on 2004-04-26
15
316 Views
Last Modified: 2010-04-01

I'm not sure how to define an object with session scope the first time a page is viewed and ensure that the same in scope object can be displayed on the same page again after data has been loaded into it..

Below is how I'm defining the object (you can see by the comments I';m not sure what I'm doing.

//ArrayList arrVirtOrderedProducts = new ArrayList();
//request.getSession().setAttribute("arrVirtOrderedProducts", arrVirtOrderedProducts);

ArrayList arrVirtOrderedProducts = (ArrayList) request.getSession().getAttribute("arrVirtOrderedProducts");


thanks for all of your help
0
Comment
Question by:rosshind
  • 8
  • 4
  • 3
15 Comments
 
LVL 7

Expert Comment

by:searlas
ID: 10917188
<jsp:useBean name="arrVirtOrderedProducts" class="java.util.ArrayList" scope="session"/>

This will create the ArrayList if and only if it does not already exist in the session.
0
 

Author Comment

by:rosshind
ID: 10917195
Thanks,

is there a way to do this using JAVA?
0
 
LVL 35

Accepted Solution

by:
TimYates earned 250 total points
ID: 10917263
<%
ArrayList arrVirtOrderedProducts = (ArrayList)session.getAttribute("arrVirtOrderedProducts");
if( arrVirtOrderedProducts == null )
{
    arrVirtOrderedProducts = new ArrayList();
    session.setAttribute("arrVirtOrderedProducts", arrVirtOrderedProducts);
}
%>
0
 
LVL 35

Expert Comment

by:TimYates
ID: 10917270
that will create the array list if it doesn't exist in the session...

so after that code, arrVirtOrderedProducts will always be the ArrayList stored in the session...
0
 
LVL 7

Expert Comment

by:searlas
ID: 10917323
rosshind, I'm wondering why you emphasized JAVA?  Is that because you think this won't work?
<jsp:useBean name="arrVirtOrderedProducts" class="java.util.ArrayList" scope="session"/>

TimYates answer does show how to write this in long-hand, but it's best-practice to minimize
the amount of java embedded inside a JSP (therefore minimizing maintenance) and that's
the whole reason for JSP tags like jsp:useBean, jsp:setProperty etc...


0
 
LVL 35

Expert Comment

by:TimYates
ID: 10917351
And...my code was a bit wrong...should have been this:

<%
    ArrayList arrVirtOrderedProducts = (ArrayList)session.getAttribute("arrVirtOrderedProducts");
    if( arrVirtOrderedProducts == null )
        arrVirtOrderedProducts = new ArrayList();
    session.setAttribute("arrVirtOrderedProducts", arrVirtOrderedProducts);
%>
0
 

Author Comment

by:rosshind
ID: 10917680
Hi serlas,

Your code doesnt seem to work but thats not the reason.  There is some complexity to my presentation layer and I'm more comfortable using JAVA.  JSP may be clearer to you, but not to me, I actually find it quite limited.

>minimize the amount of java embedded inside a JSP (therefore minimizing maintenance)

I dont accept that this is the case in EVERY case (but in general, sure).  Complex aspects of the presentation layer may require some complexity to be revealed in order to facilitate maintenence.

Thanks for your comment though
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 35

Expert Comment

by:TimYates
ID: 10917744
>  And...my code was a bit wrong...

Heh, no it wasn't...the first version was right ;-)

God, you can tell it's a Monday....  Now where did I put my brain... ?

;-)
0
 

Author Comment

by:rosshind
ID: 10917798
Thanks Tim, great help.

Do you use the JSP tags instead of JAVA much?  I find them somewhat inflexible.
0
 
LVL 35

Expert Comment

by:TimYates
ID: 10917843
I don't really do jsp tags...

I do use Struts though, and write my own Tags sometimes :-)

http://jakarta.apache.org/struts
http://www.smartframeworks.com/qt-jsp-customtags.html

I know what you mean though...but I am currently the only developer in the team..

One good thing with using tags (and things like struts), is that it takes a lot of the code out of the JSP page, allowing less-technical more design based people to understand how the pages work (rather than a lot of <% blah %> stuff scaring them) ;-)

It's just a matter of preference though...  Sometimes, jsptags just don't cut it :-/

Good Luck!!

Tim
0
 
LVL 35

Expert Comment

by:TimYates
ID: 10917849
PS:  Maybe a split between me and searlas would be fair for this question?  His answer is correct too after all :-)
0
 
LVL 7

Assisted Solution

by:searlas
searlas earned 250 total points
ID: 10917993
Well, I did get the attribute wrong:
<jsp:useBean name="arrVirtOrderedProducts" class="java.util.ArrayList" scope="session"/>

Should be:
<jsp:useBean id="arrVirtOrderedProducts" class="java.util.ArrayList" scope="session"/>

I agree that tags can be a little obtuse when you're used to Java, but the reason I gave a (standard) JSP tag is because you asked in the JSP forum...

0
 
LVL 35

Expert Comment

by:TimYates
ID: 10918011
But

<%
  // java
%>

is standard JSP too ;-)

Hee hee
0
 

Author Comment

by:rosshind
ID: 10918291
Thanks guys.

I'm the only developer here too.  
0
 
LVL 35

Expert Comment

by:TimYates
ID: 10918315
> I'm the only developer here too.  

Hehehe, the worst bit is when you are done, and it all works, and the only comment you get is something like "I thought we agreed the background should be green" ;-)

Good luck with it!!

Tim
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Javascript onclick event 4 107
trouble with PDF encryption using itext-1.3.1 17 82
Coldfusion 10 - JSP File Not Found - 404 Error 5 84
gZip compression filter 2 126
Microsoft Office Picture Manager was included in Office 2003, 2007, and 2010, but not in Office 2013. Users had hopes that it would be in Office 2016/Office 365, but it is not. Fortunately, the same zero-cost technique that works to install it with …
Large Outlook files lead to various unwanted errors and corruption issues. Furthermore, large outlook files can also make Outlook take longer to start-up, search, navigate, and shut-down. So, In this article, i will discuss a method to make your Out…
This is used to tweak the memory usage for your computer, it is used for servers more so than workstations but just be careful editing registry settings as it may cause irreversible results. I hold no responsibility for anything you do to the regist…
Internet Business Fax to Email Made Easy - With  eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, f…

863 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

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now