Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.52 KB | None | 0 0
  1. package com.atlassian.tutorial.ao.todo;
  2.  
  3. import com.atlassian.plugin.spring.scanner.annotation.component.Scanned;
  4. import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport;
  5. import com.atlassian.sal.api.user.UserManager;
  6.  
  7. import javax.inject.Inject;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import java.io.IOException;
  13. import java.io.PrintWriter;
  14.  
  15. import static com.google.common.base.Preconditions.*;
  16.  
  17. @Scanned
  18. public final class TodoServlet extends HttpServlet
  19. {
  20.     private final TodoService todoService;
  21.     @ComponentImport
  22.    private final UserManager userManager; // (1)
  23.  
  24.     @Inject
  25.     public TodoServlet(TodoService todoService, UserManager userManager)
  26.     {
  27.         this.todoService = checkNotNull(todoService);
  28.         this.userManager = checkNotNull(userManager);
  29.     }
  30.  
  31.     @Override
  32.     protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
  33.     {
  34.         enforceLoggedIn(req, res); // (2)
  35.  
  36.         final PrintWriter w = res.getWriter();
  37.         w.printf("<h1>Todos (%s)</h1>", userManager.getRemoteUser().getUsername());
  38.  
  39.         // the form to post more TODOs
  40.         w.write("<form method=\"post\">");
  41.         w.write("<input type=\"text\" name=\"task\" size=\"25\"/>");
  42.         w.write("  ");
  43.         w.write("<input type=\"submit\" name=\"submit\" value=\"Add\"/>");
  44.         w.write("</form>");
  45.  
  46.         w.write("<ol>");
  47.  
  48.         for (Todo todo : todoService.all())
  49.         {
  50.             w.printf("<li><%2$s> %s </%2$s></li>", todo.getDescription(), todo.isComplete() ? "strike" : "strong");
  51.         }
  52.  
  53.         w.write("</ol>");
  54.         w.write("<script language='javascript'>document.forms[0].elements[0].focus();</script>");
  55.  
  56.         w.close();
  57.     }
  58.  
  59.     @Override
  60.     protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
  61.     {
  62.         enforceLoggedIn(req, res); // (2)
  63.  
  64.         final String description = req.getParameter("task");
  65.         todoService.add(description);
  66.         res.sendRedirect(req.getContextPath() + "/plugins/servlet/todo/list");
  67.     }
  68.  
  69.     private void enforceLoggedIn(HttpServletRequest req, HttpServletResponse res) throws IOException
  70.     {
  71.         if (userManager.getRemoteUser() == null)  // (3)
  72.         {
  73.             res.sendRedirect(req.getContextPath() + "/plugins/servlet/login");
  74.         }
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement