This week's book giveaways are in the AI and JavaScript forums.
We're giving away four copies each of GANs in Action and WebAssembly in Action and have the authors on-line!
See this thread and this one for details.
Win a copy of GANs in ActionE this week in the AI forum
or WebAssembly in Action in the JavaScript forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Bear Bibeault
  • Paul Clapham
  • Jeanne Boyarsky
  • Knute Snortum
Sheriffs:
  • Liutauras Vilda
  • Tim Cooke
  • Junilu Lacar
Saloon Keepers:
  • Ron McLeod
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Carey Brown
Bartenders:
  • Joe Ess
  • salvin francis
  • fred rosenberger

Quick question on session attributes

 
Ranch Hand
Posts: 125
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I'm trying to debug a servlet and jsp page at work and need a little help, not having much experience in this field. I have tried to be concise and put 3 questions at the end which would help me if they were answered!!
What happens is this: the user clicks a html form button on a jsp page. This is posted to a servlet. The servlet then stores a session variable and dispatches the request to another jsp page, which obtains the session variable. Like this:
/* In doPost method of servlet */
Integer i = new Integer (22);
request.setAttribute ("value", i);
//now uses a request dispatcher and dispatches to another jsp page
/* in other jsp page */
<%
Integer i = session.getAttribute ("value");
%>
The problem i'm having is that I am getting the appserver giving me a compile error at runtime saying that 'session' is a variable which cannot be identified in the jsp page. I cannot understand this, I thought it was implicitly accessible.
1) Do I have to put a particular page directive at the top of my jsp file to allow the jsp to access the "session" object?
2) Should my servlet be putting an attribute in the session or the request object?
3) If there is a <useBean> tag at the top of the page, and the 'id' of that tag is set to the name of a session variable (and the type matches, too) does this mean that one can directly access the variable using the 'id' name. e.g:
//assume there is a session variable of type String called "name"
<jsp:useBean id="name" class="java.lang.String"/>
<%= name %>
will this work and print out the String?
many thanks!
john
 
Marshal
Posts: 67340
173
Mac Mac OS X IntelliJ IDE jQuery Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator


1) Do I have to put a particular page directive at the top of my jsp file to allow the jsp to access the "session" object?


No. The session variable, along with other implicit variables, are made available to the code of the page by the container. You did not mention which you were using.


2) Should my servlet be putting an attribute in the session or the request object?


Depends on the intended lifetime of the attribute. If the value is going to be used by the JSP page you are forwarding to and then no longer needed, you should put it on the request. If you need the value available after the request has finished, you should put it in the session.


3) If there is a <useBean> tag at the top of the page, and the 'id' of that tag is set to the name of a session variable (and the type matches, too) does this mean that one can directly access the variable using the 'id' name. e.g:


The scope attribute of the useBean must match where the attribute is. So scope="session" will hook up to the session attribute of the same name.
And the question you did not ask: in your JSP, the code to retrieve an attribute must cast the return value as appropriate:

bear
 
John Summers
Ranch Hand
Posts: 125
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
thanks very much!
john
 
Ranch Hand
Posts: 194
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Will the following code work?

I am surprised to see the following two statements:
request.setAttribute ("value", i);
Integer i = session.getAttribute ("value");
Oh!!! Setting the attribute in request scope, and searching the attribute in session scope.
Please correct this first.
Regards,
Ganapathy,S
 
John Summers
Ranch Hand
Posts: 125
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
my actual working code had both setting and getting in session, i just made a mistake when typing into the post! thanks anyway.
j
 
I have always wanted to have a neighbor just like you - Fred Rogers. Tiny ad:
Java file APIs (DOC, XLS, PDF, and many more)
https://products.aspose.com/total/java
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!