[英]JSP: Countdown timer not working?
獲取方法:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Writes to htmlPage
final PrintWriter writer = response.getWriter();
// init CountDownTimer TODO: Understand why this doesn't work
CountdownTimer timer = new CountdownTimer(CountdownTimer.toMili(5));
timer.start(new OnWaiting() {
@Override
public void onFinished() {
writer.println("Timer Finished");
}
});
// getting params from url '?'
final String userName = request.getParameter(USER_NAME);
final String passWord = request.getParameter(PASS_WORD);
// authentication step
if (isValidUser(userName, passWord)) {
writer.println(VALID);
} else {
writer.println(INVALID_USER_NAME + " or " + INVALID_PASS_WORD);
}
}
特別是這部分:
CountdownTimer timer = new CountdownTimer(CountdownTimer.toMili(5));
timer.start(new OnWaiting() {
@Override
public void onFinished() {
writer.println("Timer Finished");
}
});
倒數班:
public class CountdownTimer {
private final int mili;
public CountdownTimer(int mili) {
this.mili = mili;
}
public void start(final OnWaiting waiting) {
final Thread thread = new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(mili);
waiting.onFinished();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
thread.start();
}
public static final int toMili(int seconds) {
return seconds * 1000;
}
}
和界面:
public interface OnWaiting {
public void onFinished();
}
為什么這在JSP中不起作用? 它在常規的Java項目下工作。 我想通過Java而不是JSP中的javascript來做到這一點。
它不起作用,因為一旦Servlet Get方法完成與客戶端的通信,它就會關閉。 HTTP通常是請求-響應協議, Websockets除外,因此,一旦響應完成,將任何內容發送到響應都將無效。
頁面加載后,您可以嘗試ajax請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.