#22 mvc: create user
This commit is contained in:
@@ -12,7 +12,8 @@ public class RequestMappingHandlerMapping {
|
||||
void init() {
|
||||
mappings.put(new HandlerKey(RequestMethod.GET, "/"), new HomeController());
|
||||
mappings.put(new HandlerKey(RequestMethod.GET, "/users"), new UserListController());
|
||||
mappings.put(new HandlerKey(RequestMethod.POST, "/users"), new UserListController());
|
||||
mappings.put(new HandlerKey(RequestMethod.POST, "/users"), new UserCreateController());
|
||||
mappings.put(new HandlerKey(RequestMethod.GET, "/user/form"), new ForwardController("/user/form"));
|
||||
}
|
||||
|
||||
public Controller findHandler(HandlerKey handlerKey) {
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.example.mvc.controller;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
public class ForwardController implements Controller {
|
||||
private final String forwardUriPath;
|
||||
|
||||
public ForwardController(String forwardUriPath) {
|
||||
this.forwardUriPath = forwardUriPath;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
return forwardUriPath;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.example.mvc.controller;
|
||||
|
||||
import org.example.mvc.model.User;
|
||||
import org.example.mvc.repository.UserRepository;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
public class UserCreateController implements Controller {
|
||||
@Override
|
||||
public String handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
// user 추가
|
||||
UserRepository.save(new User(request.getParameter("userId"), request.getParameter("name")));
|
||||
return "redirect:/users";
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,14 @@
|
||||
package org.example.mvc.controller;
|
||||
|
||||
import org.example.mvc.repository.UserRepository;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
public class UserListController implements Controller {
|
||||
@Override
|
||||
public String handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
request.setAttribute("users", List.of());
|
||||
return "/user/list.jsp";
|
||||
request.setAttribute("users", UserRepository.findAll());
|
||||
return "/user/list";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.example.mvc.filter;
|
||||
|
||||
import javax.servlet.*;
|
||||
import javax.servlet.annotation.WebFilter;
|
||||
import java.io.IOException;
|
||||
|
||||
@WebFilter("/*")
|
||||
public class CharacterEncodingFilter implements Filter {
|
||||
|
||||
private static final String DEFAULT_CHARACTER_ENCODING = "UTF-8";
|
||||
|
||||
@Override
|
||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
|
||||
request.setCharacterEncoding(DEFAULT_CHARACTER_ENCODING);
|
||||
response.setCharacterEncoding(DEFAULT_CHARACTER_ENCODING);
|
||||
|
||||
chain.doFilter(request, response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.example.mvc.model;
|
||||
|
||||
public class User {
|
||||
|
||||
private final String userId;
|
||||
private final String name;
|
||||
|
||||
public User(String userId, String name) {
|
||||
this.userId = userId;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getUserId() {
|
||||
return this.userId;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package org.example.mvc.repository;
|
||||
|
||||
import org.example.mvc.model.User;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class UserRepository {
|
||||
|
||||
private final static Map<String, User> users = new HashMap<>();
|
||||
|
||||
public static void save(User user) {
|
||||
users.put(user.getUserId(), user);
|
||||
}
|
||||
|
||||
public static Collection<User> findAll() {
|
||||
return users.values();
|
||||
}
|
||||
}
|
||||
23
my-framework/mvc-practice/webapp/user/form.jsp
Normal file
23
my-framework/mvc-practice/webapp/user/form.jsp
Normal file
@@ -0,0 +1,23 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="kr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>form</title>
|
||||
</head>
|
||||
<body>
|
||||
<form method="post" action="/users">
|
||||
<div>
|
||||
<label for="userId">사용자 아이디</label>
|
||||
<input class="form-control" id="userId" name="userId" placeholder="User ID">
|
||||
</div>
|
||||
<div>
|
||||
<label for="name">이름</label>
|
||||
<input class="form-control" id="name" name="name" placeholder="Name">
|
||||
</div>
|
||||
<button type="submit">회원가입</button>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user