본문 바로가기

Servlet&JSP

MVC model 개념

Model 1: View와 Controller를 JSP 하나에서 처리한다.

 

 
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
  int num = 0;
  String num_ = request.getParameter("n");
  if (num_ != null && !num_.equals(""))
    num = Integer.parseInt(num_);
  String result;
  if (num % 2 != 0)
    result = "홀수";
  else
    result = "짝수";
%>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>MVC Model 1</title>
  </head>
 
  <body>
      <%=result %>입니다.
  </body>
</html>
 
 
cs

 

Controller, View는 한 페이지 내에서도 다른코드블록으로 분할한다.

 

 

 

Model 2: Controller는 Servlet, View는 JSP로 분할 처리한다.

 

package com.tiletocode.testservlet;
 
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
 
@WebServlet(name="oddeven", value="/oddeven")
public class Oddeven extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
        int num = 0;
        String num_ = request.getParameter("n");
        if (num_ != null && !num_.equals(""))
            num = Integer.parseInt(num_);
        String result;
        if (num%2 != 0)
            result = "홀수";
        else
            result = "짝수";
 
        request.setAttribute("result", result);
 
        RequestDispatcher dp = request.getRequestDispatcher("/oddeven.jsp");
        dp.forward(request, response);
    }
}
 
cs

 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>MVC Model 1</title>
</head>
<body>
<form action="oddeven" method="get">
    <%= request.getAttribute("result"%>입니다.
   
</form>
</body>
</html>
 
cs

 

 

서블릿에서 처리한 전달값 result를 View단(JSP)으로 넘겨주기 위해

- RequestDispatcher 객체 생성

- forward 메소드로 생성된 객체를 getRequestDispatcher메소드에서 지정한 페이지로 전달

- JSP에선 getAttribute() 메소드로 받음.

 

※전달값이 없을땐 RequestDispatcher 대신 SendRedirect 사용