Profiles
-
- 자바지기
- -Profiles
+
+ diff --git a/src/main/java/next/model/User.java b/src/main/java/next/model/User.java index c3413b42a..d5f5bb81a 100644 --- a/src/main/java/next/model/User.java +++ b/src/main/java/next/model/User.java @@ -1,5 +1,7 @@ package next.model; +import javax.servlet.http.HttpServletRequest; + public class User { private String userId; private String password; @@ -13,6 +15,19 @@ public User(String userId, String password, String name, String email) { this.email = email; } + public User(HttpServletRequest req) { + this.userId = req.getParameter("userId"); + this.password = req.getParameter("password"); + this.name = req.getParameter("name"); + this.email = req.getParameter("email"); + } + + public void modifyInfo(HttpServletRequest req) { + this.password = req.getParameter("password"); + this.name = req.getParameter("name"); + this.email = req.getParameter("email"); + } + public String getUserId() { return userId; } @@ -66,4 +81,13 @@ public boolean equals(Object obj) { return true; } + @Override + public String toString() { + return "User{" + + "userId='" + userId + '\'' + + ", password='" + password + '\'' + + ", name='" + name + '\'' + + ", email='" + email + '\'' + + '}'; + } } diff --git a/src/main/java/next/web/CreateUserServlet.java b/src/main/java/next/web/CreateUserServlet.java index 3260088da..864f6ed9a 100644 --- a/src/main/java/next/web/CreateUserServlet.java +++ b/src/main/java/next/web/CreateUserServlet.java @@ -22,10 +22,9 @@ public class CreateUserServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - User user = new User(req.getParameter("userId"), req.getParameter("password"), req.getParameter("name"), - req.getParameter("email")); + User user = new User(req); log.debug("user : {}", user); DataBase.addUser(user); - resp.sendRedirect("/user/list"); + resp.sendRedirect("/"); } } diff --git a/src/main/java/next/web/UpdateUserFormServlet.java b/src/main/java/next/web/UpdateUserFormServlet.java new file mode 100644 index 000000000..d116a6dec --- /dev/null +++ b/src/main/java/next/web/UpdateUserFormServlet.java @@ -0,0 +1,31 @@ +package next.web; + +import core.db.DataBase; +import next.model.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.RequestDispatcher; +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 java.io.IOException; + +@WebServlet("/user/update/*") +public class UpdateUserFormServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + private static final Logger log = LoggerFactory.getLogger(UpdateUserFormServlet.class); + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + final String userId = req.getPathInfo().substring(1); + log.info("User ID : {}", userId); + final User user = DataBase.findUserById(userId); + log.info("User : {}", user.toString()); + req.setAttribute("user", user); + final RequestDispatcher requestDispatcher = req.getRequestDispatcher("/user/update.jsp"); + requestDispatcher.forward(req, resp); + } +} diff --git a/src/main/java/next/web/UpdateUserServlet.java b/src/main/java/next/web/UpdateUserServlet.java new file mode 100644 index 000000000..6ef6ceea8 --- /dev/null +++ b/src/main/java/next/web/UpdateUserServlet.java @@ -0,0 +1,36 @@ +package next.web; + +import core.db.DataBase; +import next.model.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.RequestDispatcher; +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 java.io.IOException; +import java.util.Objects; + +@WebServlet("/user/update") +public class UpdateUserServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + private static final Logger log = LoggerFactory.getLogger(UpdateUserServlet.class); + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + final String userId = req.getParameter("userId"); + final User user = DataBase.findUserById(userId); + + resp.sendRedirect("/user/list"); + + if (Objects.isNull(user)) { + log.info("Can't find user By userId"); + return; + } + + user.modifyInfo(req); + } +} diff --git a/src/main/java/next/web/UserLoginServlet.java b/src/main/java/next/web/UserLoginServlet.java new file mode 100644 index 000000000..4200eb224 --- /dev/null +++ b/src/main/java/next/web/UserLoginServlet.java @@ -0,0 +1,37 @@ +package next.web; + +import core.db.DataBase; +import next.model.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.RequestDispatcher; +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 java.io.IOException; +import java.util.Objects; + +@WebServlet("/user/login") +public class UserLoginServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + private static final Logger log = LoggerFactory.getLogger(UserLoginServlet.class); + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + final String userId = req.getParameter("userId"); + final String password = req.getParameter("password"); + + final User user = DataBase.findUserById(userId); + + if (user != null && user.getPassword().equals(password)) { + HttpSession session = req.getSession(); + session. setAttribute("user", user); + } + + resp.sendRedirect("/"); + } +} diff --git a/src/main/java/next/web/UserLogoutServlet.java b/src/main/java/next/web/UserLogoutServlet.java new file mode 100644 index 000000000..164a2815e --- /dev/null +++ b/src/main/java/next/web/UserLogoutServlet.java @@ -0,0 +1,28 @@ +package next.web; + +import core.db.DataBase; +import next.model.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.RequestDispatcher; +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 java.io.IOException; + +@WebServlet("/user/logout") +public class UserLogoutServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + private static final Logger log = LoggerFactory.getLogger(UserLogoutServlet.class); + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + final HttpSession session = req.getSession(); + session.removeAttribute("user"); + resp.sendRedirect("/"); + } +} diff --git a/webapp/index.html b/webapp/index.jsp similarity index 63% rename from webapp/index.html rename to webapp/index.jsp index b81541763..eae99e71c 100644 --- a/webapp/index.html +++ b/webapp/index.jsp @@ -1,3 +1,6 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +
@@ -12,63 +15,7 @@ - - + <%@ include file="./nav/nav.jsp" %>
-
-
+
+