반응형
앞서 model1 방식은 model과 view controller 가 결합된 방식으로 jsp에서 흔히 코드 블록으로 java 코드를 삽입하는 방식을 말한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
int num = 0;
String num_ = request.getParameter("n");
if (num_!=null&&!num_.equals(""))
num = Integer.parseInt(num_);
String model;
if(num%2 !=0)
model = "홀수";
else
model = "짝수";
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<%=model %>입니다.
</body>
</html>
하지만 이와 반대로 model2 방식은 controller와 view가 물리적으로 분리된 방식으로 controller에서 포워딩해서 view쪽으로 흐름을 전달하는 방식이다.(dispatcher를 통해서 forwarding된다.)
package com.newlec.web;
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;
import java.io.IOException;
@WebServlet("/spag")
public class Spag extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
int num = 0;
String num_ = request.getParameter("n");
if (num_!=null&&!num_.equals(""))
num = Integer.parseInt(num_);
String model;
if(num%2 !=0)
model = "홀수";
else
model = "짝수";
request.setAttribute("model", model);
RequestDispatcher dispatcher = request.getRequestDispatcher("spag.jsp");
dispatcher.forward(request, response); // 현재 작업 내용을 이어감.
}
}
여기서 request에 값을 저장해 view(jsp파일) 쪽으로 dispatcher를 통해 포워딩해서 흐름을 전달한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<%=request.getAttribute("model") %>입니다.
</body>
</html>
반응형
'Back-end > JSP & Servlet' 카테고리의 다른 글
JSP EL(Expression Language) (0) | 2022.07.12 |
---|---|
JSP 코드 블럭 (0) | 2022.07.10 |
servlet get,post 메소드에 특화된 서비스 함수 (0) | 2022.07.10 |
servlet cookie를 이용한 상태 유지 (0) | 2022.07.06 |
servlet session객체를 이용한 상태 유지 (0) | 2022.07.06 |