ねえ、私はすべてのシングルユーザーに対して一度だけスレッドを開始するJavaサーブレットを実装したいと思います。更新しても、再開しないでください。私の最後のアプローチは私にいくつかの問題をもたらしたので、コードはありません^^。サーブレットのレイアウトに関する提案はありますか?
public class LoaderServlet extends HttpServlet {
// The thread to load the needed information
private LoaderThread loader;
// The last.fm account
private String lfmaccount;
public LoaderServlet() {
super();
lfmaccount = "";
}
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
if (loader != null) {
response.setContentType("text/plain");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
out.write(loader.getStatus());
out.flush();
out.close();
} else {
loader = new LoaderThread(lfmaccount);
loader.start();
request.getRequestDispatcher("WEB-INF/pages/loader.jsp").forward(
request, response);
}
}
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
if (lfmaccount.isEmpty()) {
lfmaccount = request.getSession().getAttribute("lfmUser")
.toString();
}
request.getRequestDispatcher("WEB-INF/pages/loader.jsp").forward(
request, response);
}
}
jspはajaxを使用して定期的にサーブレットに投稿し、ステータスを取得します。スレッドはちょうど3分のように実行され、last.fmデータをクロールします。