GetWriter로 Text를 전달하면서 무수히 많은 HTML을 일일이 쳤다. JSP를 사용하면 선택적으로 Java 코드를 사용할 수 있다.
# 회원 추가 JSP
먼저 회원을 추가하는 페이지를 jsp로 작성한 것이다.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/jsp/members/save.jsp" method="post">
username: <input type="text" name="username" />
age: <input type="text" name="age" />
<button type="submit">전송</button>
</form>
</body>
</html>
# 회원 저장 JSP
new-form.jsp로부터 전달된 username과 age를 저장한다. 서블릿 코드와 동일한 로직을 삽입한다.
<%@ page import="hello.servlet.domain.member.Member" %>
<%@ page import="hello.servlet.domain.member.MemberRepository" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
// java code를 넣을 수 있는 곳
// request, reponse 그냥 사용 가능하다
// 우리 눈에 보이지 않을 뿐 서비스 로직이 그대로 호출된다
MemberRepository memberRepository = MemberRepository.getInstance();
String username = request.getParameter("username");
int age = Integer.parseInt(request.getParameter("age"));
Member member = new Member(username, age);
memberRepository.save(member);
%>
<html>
<head>
<title>Title</title>
</head>
<body>
성공
<ul>
<li>id<%member.getId()%></li>
<li>username<%member.getUsername()%></li>
<li>age<%member.getAge()%></li>
</ul>
<a href="/index.html">메인</a>
</body>
</html>
서블릿과 JSP의 한계
JSP 덕분에 뷰를 생성하는 HTML 작업이 매우 깔끔해졌다. 코드의 상위 절반은 비즈니스 로직, 나머지 하위 절반은 HTML로 유저에게 보여주기 위한 뷰 영역이다. 하지만 조금 더 큰 프로젝트라면 JSP 코드가 훨씬 복잡해지고, 머지 시 컨플릭 관리도 어려울 것이다.
'🌱 Spring > MVC ①' 카테고리의 다른 글
[Spring] MVC _ Front Controller 도입, View 분리 (0) | 2023.07.17 |
---|---|
[Spring] 회원 관리 웹 어플리케이션 4 _ ServletMVC 패턴 (0) | 2023.07.15 |
[Spring] 회원 관리 웹 어플리케이션 1 _ Domain/Repo/Test (0) | 2023.07.12 |
[Spring] HTTP 응답 데이터(HttpServletResponse) (0) | 2023.07.12 |
[Spring] HTTP 요청 데이터(HttpServletRequest) (0) | 2023.07.12 |