view src/main/java/jp/ac/u_ryukyu/ie/cr/bbs/network/ShowMessageWithTimeStampServlet.java @ 4:5acde010c6db

add jungle browsing system
author tatsuki
date Tue, 28 Jun 2016 19:45:55 +0900
parents f3d30646c863
children
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.bbs.network;

import jp.ac.u_ryukyu.ie.cr.bbs.local.GetAttributeImp;
import org.eclipse.jetty.util.thread.ThreadPool;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.util.Iterator;

public class ShowMessageWithTimeStampServlet extends HttpServlet {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private final jp.ac.u_ryukyu.ie.cr.bbs.network.NetworkBulletinBoard bbs;
    private final String createBoardMessagePath;

    private static final String PARAM_BOARD_NAME = "bname";
    private final String editMessagePath;

    public ShowMessageWithTimeStampServlet(NetworkBulletinBoard _bbs,
                                           String _createBoardMessagePath, String _editMessagePath, ThreadPool thp) {
        bbs = _bbs;
        createBoardMessagePath = _createBoardMessagePath;
        editMessagePath = _editMessagePath;
    }

    public void doGet(HttpServletRequest _req, HttpServletResponse _res) {
        final String bname = (_req.getParameter(PARAM_BOARD_NAME));
        try {
            _res.setCharacterEncoding("UTF-8");
            printBoard(bname, _res.getWriter());
        } catch (Exception _e) {
            _res.setStatus(500);
        }
    }

    private void printBoard(String _bname, PrintWriter _pw) throws Exception {
        _pw.write("<html><body>\n");
        _pw.write("<h1>" + bbs.sanitize(_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='" + bbs.sanitize(_bname) + "'/> EditKey : <input type='textarea' 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");

        GetAttributeImp attribute = bbs.getAttribute(_bname, "[-1]","1");
        Iterator<String> keys = attribute.getKeys();

        while (keys.hasNext()) {
            String key = keys.next();
            String mesage = attribute.getMessage(key);
            _pw.write("<p>" + key + " = " + mesage + "</p>\n");
        }
        _pw.write("<p><a href='" + editMessagePath + "?bname=" + bbs.sanitize(_bname) + "&uuid=-1,0" + "'>edit" + "</a></p>");
        _pw.write("</body></html>");
        _pw.flush();
    }
}