스프링/3. 스프링 MVC

18. 서블릿 회원관리 애플리케이션

sdafdq 2023. 8. 5. 17:55
@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