package nl.han.ddoa.forumplugin.servlet; import nl.han.ddoa.forumplugin.entities.ForumThread; import nl.han.ddoa.forumplugin.entities.ForumThreadRepository; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import static com.google.common.base.Preconditions.checkNotNull; /** * Description for the class ThreadServlet: * <p/> * Provides a good old Servlet interface to the ForumThreadRepository. It's default location is: /confluence/plugins/servlet/forum/list * <p/> * * @author mdkr * @version Copyright (c) 2014 HAN University, All rights reserved. */ public class ThreadServlet extends HttpServlet { private final ForumThreadRepository forumThreadRepository; public ThreadServlet(ForumThreadRepository forumThreadRepository) { this.forumThreadRepository = checkNotNull(forumThreadRepository); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { final PrintWriter w = res.getWriter(); w.write("<h1>Threads</h1>"); w.write("<form method=\"post\">"); w.write("<input type=\"text\" name=\"title\" size=\"25\"/>"); w.write("  "); w.write("<input type=\"submit\" name=\"submit\" value=\"Create New Thread\"/>"); w.write("</form>"); w.write("<ol>"); for (ForumThread thread : forumThreadRepository.all()) { w.printf("<li>%s</li>", thread.getTitle()); } w.write("</ol>"); w.write("<script language='javascript'>document.forms[0].elements[0].focus();</script>"); w.close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { forumThreadRepository.add(req.getParameter("title")); res.sendRedirect(req.getContextPath() + "/plugins/servlet/forum/list"); } }