00. ๊ธฐ๋ณธ๊ตฌ์กฐ (ํ์ ๊ด๋ฆฌ form)
์์ผ๋ก์ MVC ํ์ต์ ์ํ ์์ ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ์๋์ ๊ฐ์ด ํ์๊ด๋ฆฌ ํผ์ ๋ง๋ค์๋ค. ์์ผ๋ก ์ด ์ฝ๋๋ค์ ๋ฆฌํฉํ ๋ง ํ๋ฉฐ ์ข์ ์ํคํ ์ฒ ์ค๊ณ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ณ Spring MVC ํ๋ ์์ํฌ๊ฐ ๋ฑ์ฅํ ๋ฐฐ๊ฒฝ ๋ฐ ์๋ ์๋ฆฌ๋ฅผ ๊ทผ๋ณธ์ ์ธ ๋ถ๋ถ๋ถํฐ ํ์ ํ๋ฉฐ ํ์ตํ๊ณ ์ ํ๋ค.
1๏ธโฃ ย MemberFormServlet
- ํด๋ผ์ด์ธํธ๋ฅผ ๋ฉ์ธ ํ๋ฉด์ธ new-form.jsp ๋ก ์ ์กํด์ฃผ๋ ์ญํ ์ ํ๋ค.
@WebServlet(name = "mvcMemberFormServlet", urlPatterns = "/servlet-mvc/members/new-form")
public class MvcMemberFormServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String viewPath = "/WEB-INF/views/new-form.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
dispatcher.forward(request, response);
}
}
2๏ธโฃ ย MemberSaveServlet
- ํด๋ผ์ด์ธํธ๊ฐ new-form.jsp ์์ ์ ๋ ฅํ ๊ฐ(username, age)์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์์์ ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์์ ์ ์ฅํ๋ ์ญํ ์ ํ๋ค.
@WebServlet(name = "mvcMemberSaveServlet", urlPatterns = "/servlet-mvc/members/save")
public class MvcMemberSaveServlet extends HttpServlet {
private MemberRepository memberRepository = MemberRepository.getInstance();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
int age = Integer.parseInt(request.getParameter("age"));
Member member = new Member(username, age);
memberRepository.save(member);
// Model ์ญํ ๋ก request ๊ฐ์ฒด ๋ด๋ถ์ ์ ์ฅ์๋ฅผ ์ด์ฉํ๋ค.
request.setAttribute("member", member);
String viewPath = "/WEB-INF/views/save-result.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
dispatcher.forward(request, response);
}
}
3๏ธโฃ ย MemberListServlet
- ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์์ ์ ์ฅ๋ Member ๊ฐ์ฒด๋ฅผ ๋์ด์์ request ๊ฐ์ฒด์ ์ ์ฅํ ํ ๋ธ๋ผ์ฐ์ ์ ์ถ๋ ฅํ๋ ์ญํ ์ ํ๋ค.
@WebServlet(name = "mvcMemberListServlet", urlPatterns = "/servlet-mvc/members")
public class MvcMemberListServlet extends HttpServlet {
private MemberRepository memberRepository = MemberRepository.getInstance();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Member> members = memberRepository.findAll();
request.setAttribute("members", members);
String viewPath = "/ERB-INF/views/members.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
dispatcher.forward(request,response);
}
}