서블릿을 통해 회원 등록 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편 - 백엔드 웹 개발 핵심 기술을 참고하여 공부하였습니다.
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : MVC 패턴 적용해보고 한계 체크하기(1) (0) | 2022.01.21 |
---|---|
[Spring Boot] : JSP로 회원 관리 구현하기 (0) | 2022.01.21 |
[Spring Boot] : 회원 정보를 간단하게 저장하고 조회를 할 수 있는 기능을 구현 (0) | 2022.01.21 |
[Spring Boot] : HTTP 응답을 JSON으로 반환하기 (0) | 2022.01.20 |
[Spring Boot] : HTTP 단순 텍스트 응답과 HTML 응답 (0) | 2022.01.20 |
댓글