본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : Servlet을 통한 회원 관리 웹 애플리케이션 구현

by 오주현 2022. 1. 21.
반응형

서블릿을 통해 회원 등록 HTML 폼을 만들어 본다.

w.write(
"<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"
}

일부 코드인데 PrintWriter w = response.getWriter(); 를 통해 HTML 코드를 작성해 준다.

response.setContentType("text/html");
response.setCharacterEncoding("utf-8");

사전에 response 객체 설정을 통해 HTML을 읽을 수 있는 형식으로 셋팅을 해 주어야 한다.

이렇게 하면 단순하게 회원 정보를 입력할 수 있는 HTML Form이 생긴다. input으로 값을 받고 submit으로 값을 전달해준다.

값을 입력하고 전송을 누르면 데이터가 저장이 되도록 코딩을 해본다.

String username = request.getParameter("username");
int age = Integer.parseInt(request.getParameter("age"));

Member member = new Member(username, age);

파라미터를 조회하고 member 객체를 생성해 준다.

memberRepository.save(member);

member 객체를 memberRespository를 통해 저장한다.

response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter w = response.getWriter();

HTML에 맞는 형식으로 response 객체를 셋팅해 준다.

w.write(
" <li>id="+member.getId()+"</li>\\n" +
" <li>username="+member.getUsername()+"</li>\\n" +
" <li>age="+member.getAge()+"</li>\\n"
)

member 객체를 통해 HTML을 동적으로 만들어 응답한다.

내 정보를 입력해 봤다.

홍길동 정보도 입력을 해 봤다.

id는 시퀸스를 ++값으로 넣어줬기 때문에 자동으로 카운팅된다.

이제 저장된 회원 목록을 불러봐야한다.

List<Member> members = memberRepository.findAll();

모든 회원을 조회한다.

for (Member member : members) {
            w.write(" <tr>");
            w.write(" <td>" + member.getId() + "</td>");
            w.write(" <td>" + member.getUsername() + "</td>");
            w.write(" <td>" + member.getAge() + "</td>");
            w.write(" </tr>");
        }

HTML 중간에 for문을 통해 회원 수 만큼 동적으로 생성하고 응답하도록 만들어 준다.

목록을 살펴보면 위에 등록한 회원 정보가 그대로 나오는 것을 확인할 수 있다.

서블릿과 자바 코드만으로 HTML을 만들었는데 동적인 HTML을 만드는 데 한계가 있다 때문에 HTML 문서에 동적으로 변해야 하는 부분만 자바 코드를 넣을 수 있도록 하는 템플릿 엔진을 사용하면 더 편리하게 사용이 가능하다.

템플릿 엔진은 JSP, Thymeleaf, Freemarker, Velocity 등이 있는데 내가 프로젝트 할 때 주로 사용하던 JSP는 사장되어가는 기술이라고 한다. 스프링 부트에서는 주로 Thymeleaf 템플릿 엔진을 사용한다고 한다.


스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 참고하여 공부하였습니다.

반응형

댓글