I am calling a unix script from Java.Now this script runs for around 10 minutes and returns messages(echo statements). I am able to read these messages as soon as they are sent using a Buffered Reader using Java Class.
The problem is when is doing the same in JSP.Because I want to display the response as soon as a line is displayed and then the next response when next line is read(say after few seconds or minutes). But my JSP page will render only when the entire script runs. How can this be done using JSP.Please advice.
Since this Unix script runs for long time say 10 minutes, I want user to be displayed messages in between indicating the progress so far.(as messages recieved line by line from Unix script). But how to display partial output using JSP and then after period of time display the next output. I do not know AJAX.Is there a way of doing it using JSP?
actually since i dont know ajax, and i have to do this in limited time, i wanted to do this without AJAX.I read on internet that setting partial output as session variable and refeshing the page every second can help.but how exactly to do this i am confused.
Yes, before Ajax, one needed to refresh the whole page in order to effect any changes. If you want to use no JavaScript or Ajax, that's the approach you will have to use. You cannot just add parts the to page incrementally -- you need to redo the whole thing.
Can you please tell about this approach too? I still have some confusion.
->My JSP page will have buffered Reader reading line by line and displaying this Variable.
--> JSP page will have auto refresh. for every second.
But still the JSP page will be rendered after the entire buffer reader is read? suppose from buffer reader i am reading line by line 1 to 10 at intervals of 1 sec, despite the auto refresh, the JSP page will be rendered at once only after completion of 10 seconds.
Then how to make this approach work.Please suggest if this is possible and i am misssing out something above?
thanks
Possibly you might find pushlets applicable in this use case.
Its quite an old article, and I never used them myself, but I think it fits your scenario.
Really, the correct way to do this is with Ajax. Refreshing the whole JSP page -- or screwing around with flushing on the server -- is an outdated, fragile, and unnecessarily complicated approach. Why not use modern technology as it is supposed to be used?
Bear Bibeault wrote:Really, the correct way to do this is with Ajax. Refreshing the whole JSP page -- or screwing around with flushing on the server -- is an outdated, fragile, and unnecessarily complicated approach. Why not use modern technology as it is supposed to be used?
It seems like AJAX is the best way. Can you tell me how do we need to publish the output from servlet and display it line by line in sync with the console output using AJAX.
How is the servlet getting the text that needs to be displayed?
With HTTP, you get a text response for every request. If the display needs to continually be updated, you can fire off a request at intervals to get the latest text to display.
Servlet is getting the data using inputstream. and data need to be displayed as soon as it arrives to servlet in div section in jsp continuously. Please Suggest me.
That's not going to be possible unless you limit your audience to modern browsers where technologies like web sockets or Meteor or other constant-connection technologies can be used.
If you are supporting legacy browsers, polling is as good as it's going to get.
Servlet is getting the data using inputstream. and data need to be displayed as soon as it arrives to servlet in div section in jsp continuously. Please Suggest me.
Please try to do this using AJAX. That is the proper way.
Post by:autobot
I didn't do it. You can't prove it. Nobody saw me. The sheep are lying! This tiny ad is my witness!
a bit of art, as a gift, the permaculture playing cards