jsp007
asked on
Running a JSP script every 5 mins?
Hello,
I am new to JSP. I would like to know how I can make a JSP script run automatically every 5 mins. This will be used to pull data from a webpage and store it in a database. If the server restarts, I need this script to continue to run.
Thank you,
- 007
I am new to JSP. I would like to know how I can make a JSP script run automatically every 5 mins. This will be used to pull data from a webpage and store it in a database. If the server restarts, I need this script to continue to run.
Thank you,
- 007
When the servlet container starts, you can have a servlet automatically load. From this servlet's init() method, you could start a separate TimerTask that runs every 5 minutes to do your update.
To automatically load the servlet (and therefore execute the init() method) when the server starts, you need to include the <load-on-startup> tag (inside the <servlet> tag) in the web.xml file.
To automatically load the servlet (and therefore execute the init() method) when the server starts, you need to include the <load-on-startup> tag (inside the <servlet> tag) in the web.xml file.
That's the only way I can think of doing it...
Of course instead of running a JSP, you would be better moving your code into the TimerTask
Tim
Of course instead of running a JSP, you would be better moving your code into the TimerTask
Tim
Hi 007.
If your goal is to pickup data from the Web and put it on your database, with out caring of your webserver access, I really don't understand why you want to do it on a web based application. You should just make it on any language as an stand alone application and configure it as you like.
Javier
If your goal is to pickup data from the Web and put it on your database, with out caring of your webserver access, I really don't understand why you want to do it on a web based application. You should just make it on any language as an stand alone application and configure it as you like.
Javier
It's probably part of his web-application, so it can cache regular web-pages, or feeds...
>> Of course instead of running a JSP, you would be better moving your code into the TimerTask
;-)
You cannot run a JSP from the new thread (unless the new Thread is simulating a browser). So Tim is right here :-)
;-)
You cannot run a JSP from the new thread (unless the new Thread is simulating a browser). So Tim is right here :-)
ASKER
hello everyone,
Thank you for taking time to answer my Q. The most sensible thing would be to write a standalone program, but that is not an option in this case. As of now the following answer seems to be the most reasonable one...
Comment from jimmack
Date: 12/09/2003 02:59PM PST
Is it possible for you to give me a step by step method of doing this i.e. loading the servlet into the init() method? Also, will I need any admin access to do this once it goes up on the sever?
Thanks
- 007
Thank you for taking time to answer my Q. The most sensible thing would be to write a standalone program, but that is not an option in this case. As of now the following answer seems to be the most reasonable one...
Comment from jimmack
Date: 12/09/2003 02:59PM PST
Is it possible for you to give me a step by step method of doing this i.e. loading the servlet into the init() method? Also, will I need any admin access to do this once it goes up on the sever?
Thanks
- 007
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
No, you shouldn't need any extra rights on the server. If your servlet can execute, it should be able to start another thread.
Don't forget:
> you need to include the <load-on-startup> tag (inside the <servlet> tag) in the web.xml
as jim said earlier as well :-)
> you need to include the <load-on-startup> tag (inside the <servlet> tag) in the web.xml
as jim said earlier as well :-)
I tested the following code on Tomcat 4.1.24. The page continued to refresh every 5 minutes even after restarting the server. The URL parameter should be the page you're calling it from (this page).
<HTML>
<HEAD>
<meta http-equiv="refresh" content="300; URL=http://your_url/test_refresh.jsp">
<title>test_refresh.jsp</t itle>
</HEAD>
<font size=+1>
This page should reload every five minutes.
<br>
<br><br>
<%@ page import="java.util.Calendar " %>
<%
Calendar calendar = Calendar.getInstance();
%>
Loaded at <%=calendar.getTime()%>
</html>
<HTML>
<HEAD>
<meta http-equiv="refresh" content="300; URL=http://your_url/test_refresh.jsp">
<title>test_refresh.jsp</t
</HEAD>
<font size=+1>
This page should reload every five minutes.
<br>
<br><br>
<%@ page import="java.util.Calendar
<%
Calendar calendar = Calendar.getInstance();
%>
Loaded at <%=calendar.getTime()%>
</html>
> The page continued to refresh every 5 minutes even after restarting the server.
As long as you open it in a browser... it will stop running when you close your browser...
As long as you open it in a browser... it will stop running when you close your browser...
> This will be used to pull data from a webpage and store it in a database.
From the original post it sounds like a webpage will already be open.
From the original post it sounds like a webpage will already be open.
>> and store it in a database
?
?
Storing the information in the database would be done with code on the jsp page that refreshes every 5 minutes. This could be done with code like the following enhancement of my earlier post. Put code to handle the submit before code to display the page.:
<HTML>
<HEAD>
<meta http-equiv="refresh" content="300; URL=http://yoururl/test_refresh.jsp">
<title>test_refresh.jsp</t itle>
</HEAD>
<body onunload="document.the_for m.submit() ">
<font size=+1>
This page should reload every five minutes.
<br>
Old value = <%=request.getParameter("t he_time")% >
<br><br>
<%@ page import="java.util.Calendar " %>
<%
Calendar calendar = Calendar.getInstance();
%>
<form name="the_form" action="http://your_url/test_refresh.jsp" method="post">
Loaded at <input name="the_time" value="<%=calendar.getTime ()%>">.
</form>
</body>
</html>
<HTML>
<HEAD>
<meta http-equiv="refresh" content="300; URL=http://yoururl/test_refresh.jsp">
<title>test_refresh.jsp</t
</HEAD>
<body onunload="document.the_for
<font size=+1>
This page should reload every five minutes.
<br>
Old value = <%=request.getParameter("t
<br><br>
<%@ page import="java.util.Calendar
<%
Calendar calendar = Calendar.getInstance();
%>
<form name="the_form" action="http://your_url/test_refresh.jsp" method="post">
Loaded at <input name="the_time" value="<%=calendar.getTime
</form>
</body>
</html>
ASKER
Hello everyone,
I just wanted to thank you all for answering my Qs. Although most of your answerswere right, it was not what I was looking for... The meta tag refresh (which I thought of previously) would not work because I cannot have a browser open day and night refreshing the page.
I have chosen the following answer because it is exactly what I wanted
Comment from jimmack
Date: 12/10/2003 03:22AM PST
I will follow this URL and and the rest is up to me to figure it out
Thanks a lot guys :-)
- Sid
I just wanted to thank you all for answering my Qs. Although most of your answerswere right, it was not what I was looking for... The meta tag refresh (which I thought of previously) would not work because I cannot have a browser open day and night refreshing the page.
I have chosen the following answer because it is exactly what I wanted
Comment from jimmack
Date: 12/10/2003 03:22AM PST
I will follow this URL and and the rest is up to me to figure it out
Thanks a lot guys :-)
- Sid
;-)
ASKER
Thanks in advance
-007