MVC 패턴
M : Model
V : View
C : Controller
MVC1
MVC1 패턴은 View와 Controller를 모두 JSP가 담당하는 형태를 가진다.
MVC2
MVC2 패턴은 널리 표준으로 사용되는 패턴이다.
MVC2 패턴의 간단한 예제코드(DB연동 X)
이름과 이메일을 저장하는 간단한 회원등록
M : Member.java
V : memberForm.jsp / memberResult.jsp
C : MemberController.java
Member.javapackage member;
public class Member {
private String name;
private String email;
public Member(String name, String email) {
super();
this.name = name;
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "이름 : " + name + ", email : " + email;
}
}
memberForm.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>회원 등록</h2>
<form action="register" method="post">
이름 : <input type="text" name="name"> <br>
이메일 : <input type="text" name="email"> <br>
<input type="submit" value="등록">
</form>
</body>
</html>
memberResult.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>회원 등록 결과</h2>
이름 : <%=request.getAttribute("name") %> <br>
이메일 : <%=request.getAttribute("email") %> <br>
member : <%=request.getAttribute("member") %>
</body>
</html>
MemberController.javapackage member;
import java.io.IOException;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/register")
public class MemberController extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
String email = request.getParameter("email");
Member member = new Member(name, email);
request.setAttribute("member", member);
request.setAttribute("name", name);
request.setAttribute("email", email);
RequestDispatcher dispatcher = request.getRequestDispatcher("memberResult.jsp");
dispatcher.forward(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher = request.getRequestDispatcher("memberForm.jsp");
dispatcher.forward(request, response);
}
}
Controller 코드 분석하기
MemberController.java

12줄
@WebServlet("/register")
13줄
public class MemberController extends HttpServlet
15줄
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
16~17줄
String name = request.getParameter("name");
String email = request.getParameter("email");
19줄
Member member = new Member(name, email);
20~23줄
request.setAttribute("member", member);
request.setAttribute("name", name);
request.setAttribute("email", email);
25~26줄
RequestDispatcher dispatcher = request.getRequestDispatcher("memberResult.jsp");
dispatcher.forward(request, response);
31줄
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException