Mercurial > hg > Members > nobuyasu > jungle-network
view src/main/java/app/bbs/ShowMessageWithTimeStampServlet.java @ 155:83e99eba6ec1
async thread comtext in showmessage servlet
author | tatsuki |
---|---|
date | Wed, 09 Jul 2014 19:44:47 +0900 |
parents | 29734d7d6521 |
children | 89999029c543 |
line wrap: on
line source
package app.bbs; import java.io.PrintWriter; import javax.servlet.AsyncContext; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.eclipse.jetty.util.thread.ThreadPool; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BoardMessage; public class ShowMessageWithTimeStampServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; private final NetworkBulletinBoard bbs; private final String createBoardMessagePath; private final String editMessagePath; private ThreadPool threadPool; private static final String PARAM_BOARD_NAME = "bname"; public ShowMessageWithTimeStampServlet(NetworkBulletinBoard _bbs,String _createBoardMessagePath, String _editMessagePath, ThreadPool thp) { bbs = _bbs; createBoardMessagePath = _createBoardMessagePath; editMessagePath = _editMessagePath; threadPool = thp; } public void doGet(HttpServletRequest _req,HttpServletResponse _res) { final AsyncContext asc = _req.startAsync(); final String bname = _req.getParameter(PARAM_BOARD_NAME); Runnable printBoardThread = new Runnable() { @Override public void run() { try{ printBoard(bname,_res.getWriter()); }catch(Exception _e){ _res.setStatus(500); } asc.complete(); } }; threadPool.execute(printBoardThread); } private void printBoard(String _bname,PrintWriter _pw) throws Exception { _pw.write("<html><body>\n"); _pw.write("<h1>"+_bname+"</h1>\n"); _pw.write("<p>Latest renew time : "+bbs.getRenewTime(_bname)+"</p>\n");; _pw.write("<form action='"+createBoardMessagePath+"' method='POST'\n"); _pw.write("<p>Author : <input type='text' name='author'/> <input type='hidden' name='bname' value='"+_bname+"'/> EditKey : <input type='text' name='key'/></p>\n"); _pw.write("<p>Message<br/> <input type='textarea' name='msg'/> </p>\n"); _pw.write("<p><input type='submit' value='submit'/></p>\n"); for(BoardMessage msg : bbs.getMessages(_bname)){ _pw.write("<hr/>"); _pw.write("<p><b>"+msg.getAuthor()+"</b></p>"); _pw.write("<p>"+msg.getMessage()+"</p>"); _pw.write("<small><a href='"+editMessagePath+"?bname="+_bname+"&uuid="+msg.getUUID()+"'>edit</a></small>"); } _pw.write("</body></html>"); _pw.flush(); } }