This week's book giveaway is in the Mac OS forum.
We're giving away four copies of a choice of "Take Control of Upgrading to Yosemite" or "Take Control of Automating Your Mac" and have Joe Kissell on-line!
See this thread for details.
The moose likes Servlets and the fly likes Can not  Reflesh Page and NullPointerException Problems Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Java » Servlets
Bookmark "Can not  Reflesh Page and NullPointerException Problems" Watch "Can not  Reflesh Page and NullPointerException Problems" New topic
Author

Can not Reflesh Page and NullPointerException Problems

James Long
Greenhorn

Joined: Feb 02, 2001
Posts: 14
Hi, all:
I am doing one project using Java Servlet and JSP. Tomcat3.2 is my test environment.
I created a servelt (ParserServlet) to parse a XML file
to get the product's "Category" name and "Product Name".
I created an "ProductBean" object to store these info.
I put this bean object into request object
request.setAttribute("product", productBeanObject)
Then I use RequestDispatch("/WebApplication/jsp/Display.jsp").forward(request, response).
In Display.jsp, it create a "ProductBean" object and I retrieve
the object back from the request.
productBeanObject = (ProductBean)request.getAttribute("product")
then Display.jsp shows the product's Category and its name.
I start Tomcat, Open web broswer, enter:
"http://127.0.0.1:8080/WebApplication/servlet/ParserServlet"
Everything is OK. The broswer shows the product's Category and its name. The URL in the Address location of the IE5.0 remain the same as it is.
"http://127.0.0.1:8080/WebApplication/servlet/ParserServlet"
instead of changing to
"http://127.0.0.1:8080/WebApplication/jsp/Display.jsp" (Why does the URL not change after the redirection)
My problem is:
When I "reflesh" the broswer,(URL is the same as "http://127.0.0.1:8080/WebApplication/servlet/ParserServlet")
The broswer does show the same result as the first calling
"http://127.0.0.1:8080/WebApplication/servlet/ParserServlet"
However it give me error:
java.lang.NullPointerException
Can any friend tell me the reseason and how to solvet this problem (Why I can't refesh this page?) Is it the session problem or I need to use session.setAttribute() , or session.putValue() instead of using request.setAttribute()
After the "reflesh" the page, I check what is being passed into the request object. The servlet does pass the "ProductBean" Object into the request, but the value inside the object in NULL.
So it throws exception:
java.lang.NullPointerException
I have to restart TOMCAT again whenever I reflesh this page, then it show the result. It is not what we want.
Any suggestion and advice would be very appreciated.
Thank you in advanced!!
James
maha anna
Ranch Hand

Joined: Jan 31, 2000
Posts: 1467
James,
I think you guessed the answer right. Any object set as request.setAttribute(*** ,***) lives only for that particular request. Which means once some response comes from the server end to the client end, the object which was put in HttpRequest has gone.
If you change as session.setAttribute(***,***), the set object will live for the whole session of the user, which means it will be available for subsquent requests.
This is the reason, generally developers put the login info in session scope, so that each request from client side can be validated against, the session scoped login info object.
regds
maha anna
[This message has been edited by maha anna (edited February 05, 2001).]
Yuriy Fuksenko
Ranch Hand

Joined: Feb 02, 2001
Posts: 413
URL doesn't change, becose you you use forward. If you want URL to be vhanged, you should use sendRedirect instead.
 
GeeCON Prague 2014
 
subject: Can not Reflesh Page and NullPointerException Problems