wood burning stoves 2.0*
The moose likes Servlets and the fly likes Refresh in browser Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "Refresh in browser" Watch "Refresh in browser" New topic
Author

Refresh in browser

Mallika Kumar
Ranch Hand

Joined: Feb 15, 2001
Posts: 61
Hi,
I have a query program which displays data page by page. I have two buttons, next and back, depending on how many rows have to be displayed. I'm using the same jsp page for displaying all pages. My jsp page uses two java beans for this. One has request scope which performs the query for every page and gets data. The other has a session scope. It keeps track of how many rows have been viewed, and shows data respective to next and back clicks.
The way I know its a next or back click, is by using request.getAttribute("next") and request.getAttribute("back"). All is fine.....until we click on Refresh button in the browser.
Suppose I get 100 rows in query, and user selects to see 20 rows per page.After seeing the first page, user clicks next button and views the next display. Now, if user clicks Refresh button in the browser(after next click), its being interpreted as another NEXT click.....if user keeps on clicking Refresh button....they will reach end of data. Without clicking next button, they would have viewed all display pages. Similar scenario happens when user clicks back button, and Refresh in browser. The program interprets the Refresh(after a back click) as another back click.
How can I distinguish if its a Refresh from the browser button, and a next or back click ? How can I handle Refresh clicks in Internet Explorer in my program ?
Any suggestions would be welcomed.
Thanks.
Mallika Kumar
Ranch Hand

Joined: Feb 15, 2001
Posts: 61
Hi,
Correction to my previous post......it should be request.getParameter("next") and request.getParameter("back"), not request.getAttribute("next")/("back").
Regarding this problem, is there a way we can get to know if the user has clicked Refresh button in browser ?
Thanks.
Andrew Shafer
Ranch Hand

Joined: Jan 19, 2001
Posts: 338

When refresh it click, the client makes an identicle request to the server.
Since this calls the jsp and you only use one, the way you have designed it, the jsp thinks that is the next request, which it technically is.


!_I_Know_Kung_Fu_!
Mallika Kumar
Ranch Hand

Joined: Feb 15, 2001
Posts: 61
Thanks Andrew.
Well, the design of this program did not take the Refresh action into account. I would like some suggestions regarding how to go about solving this scenario. I have a session scoped bean with a counter variable, which tracks the rows viewed. I was thinking of re-setting this variable to be equal to what it was at the beginning of the page display, when refresh button is clicked. But before I do that, I need to know that refresh is taking place. Is there a way to get this information from the request, or server ?
maha anna
Ranch Hand

Joined: Jan 31, 2000
Posts: 1467
Mallika,
I also once had to write those 'Prev' 'Next' - type of work.
The trick used was, dynamically generate those 'Prev' and 'Next' href links and append 'PageNo' in url itself.
For example :
<a href="http://localhost:8080/servlet/EmployeesServlet?pageNo=10> Next Page </a>
OR
<a href="http://localhost:8080/servlet/EmployeesServlet?pageNo=10> Prev Page </a>
What your EmployeeServlet will do is, just get 'PageNo' HttpServletRequest value and calculate those rows to be displayed and display. Apart from this, it will also intelligently calculate if there could be Next/Prev links for this current page and dynamically coin those hrefs and place them at top/bottom of page.
In this case , if we click on referesh, I think the current page only will be displayed , because the vital 'pageNo' info comes from Prev/Next hrefs itself (not from session) . Give it a try!
regds
maha anna
[This message has been edited by maha anna (edited May 10, 2001).]
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Refresh in browser
 
Similar Threads
Browser back button
Yet another caching trouble
How to get login page when user clicks on browser's back button
request parameters persisting across pages
how to terminate session when closing the browser?