@WebServlet(name="memberFormServlet", urlPatterns = "/servlet/members/new-form")
public class MemberFormServlet extends HttpServlet {
MemberRepository memberRepository = MemberRepository.getInstance();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter w = response.getWriter();
w.write("<!DOCTYPE html>\n" +
"<html>\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <title>Title</title>\n" +
"</head>\n" +
"<body>\n" +
"<form action=\"/servlet/members/save\" method=\"post\">\n" +
" username: <input type=\"text\" name=\"username\" />\n" +
" age: <input type=\"text\" name=\"age\" />\n" +
" <button type=\"submit\">전송</button>\n" +
"</form>\n" +
"</body>\n" +
"</html>\n");
}
}
어.. 나라면 이렇게 안할 듯.. 그냥 html 만들고.. 이게 뭐 딱히 비즈니스 로직이 필요한 것도 아니고..
@WebServlet(name = "memberSaveServlet", urlPatterns = "/servlet/members/save")
public class MemberSaveServlet extends HttpServlet {
MemberRepository memberRepository = MemberRepository.getInstance();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Member member1 = new Member(request.getParameter("username"),Integer.parseInt(request.getParameter("age")));
Member savedMember = memberRepository.save(member1);
List<Member> members = memberRepository.findAll();
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
PrintWriter w = response.getWriter();
w.println("<html>");
w.println("<head>");
w.println("</head>");
w.println("<body>");
w.println("<ul>");
for( Member member : members){
w.println("<li>" + member.getId() + ", " + member.getName() + ", " + member.getAge() + "</li>");
}
w.println("</ul>");
w.println("</body>");
w.println("</html>");
}
}
이건 좀 비즈니스 로직이 필요함.
여기서 잘못한 건 /servlet/members/save
uri를 이렇게 해서..
왜냐하면 내가 먼저 하느라 어차피 메모리에 쌓일 거 다 보이는 게 낫겠다 싶어서 이렇게 했음..
그냥 /servlet/members 이렇게 따로 회원 전체조회 잘 리소스와 네이밍 맞게 하는 게 좋음.
그리고 save랑 조회도 분리해야 하고..
여기는 걍 save정도로 해줬어야 됐음. response도 그냥 save된 데이터 보여주는 정도.
조회는 따로 분리해놨어야 됐음.
save는 딱 save만.
'스프링 > 3. 스프링 MVC' 카테고리의 다른 글
20. MVC 개요 (0) | 2023.08.05 |
---|---|
19. JSP 회원관리 웹 애플리케이션 (0) | 2023.08.05 |
17. 회원관리 웹 애플리케이션 개요 (0) | 2023.08.05 |
16. HTTP 응답 HTTP API - JSON (0) | 2023.08.05 |
15. http 응답 방식 (0) | 2023.08.05 |