package com.in28minutes.servletjsp.web.servlet.todo; import static com.in28minutes.servletjsp.web.util.Views.CREATE_TODO_PAGE; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.context.ApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import com.in28minutes.domain.Priority; import com.in28minutes.domain.TodoItem; import com.in28minutes.domain.User; import com.in28minutes.service.api.TodoService; import com.in28minutes.web.common.util.TodoListUtils; @WebServlet(name = "CreateTodoServlet", urlPatterns = { "/todos/new", "/todos/new.do" }) public class CreateTodoServlet extends HttpServlet { private static final long serialVersionUID = -8372320027403299732L; private TodoService todoService; @Override public void init(ServletConfig servletConfig) throws ServletException { ApplicationContext applicationContext = WebApplicationContextUtils .getWebApplicationContext(servletConfig.getServletContext()); todoService = applicationContext.getBean(TodoService.class); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setAttribute("today", new SimpleDateFormat( TodoListUtils.DATE_FORMAT).format(new Date())); request.getRequestDispatcher(CREATE_TODO_PAGE).forward(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); User user = (User) session.getAttribute(TodoListUtils.SESSION_USER); String title = request.getParameter("title"); String dueDate = request.getParameter("dueDate"); String priority = request.getParameter("priority"); TodoItem todoItem = new TodoItem(user.getId(), title, false, Priority.valueOf(priority), new Date(dueDate)); todoService.create(todoItem); request.getRequestDispatcher("/todos").forward(request, response); } }