@Eeap
velog
@Eeap
전체 방문자
오늘
어제
  • 전체 (168)
    • osam (1)
    • Cloud (21)
      • Docker (2)
      • AWS (13)
    • AI & Data (7)
    • Algorithm (76)
      • Baekjoon (75)
      • Codeforces (1)
    • Language (18)
      • Java (18)
    • Back-end (17)
      • Spring (3)
      • JSP & Servlet (12)
      • Go (2)
    • 일상 (4)
    • 기타 (8)
    • git (1)
    • Infra (9)
      • Apache Kafka (5)
      • Kubernetes (4)
      • 기타 (0)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • invokemodel api
  • 티스토리챌린지
  • 인터페이스
  • converse api
  • AWS CodeCatalyst
  • bedrock api
  • java
  • AWS CodeArtifact
  • Python
  • AWS CodeStar
  • bedrock agent
  • 오블완
  • Agent
  • SageMaker
  • bedrock
  • CLASS
  • 심폴릭링크
  • sagemaker unified studio
  • knowledge bases
  • flink

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
@Eeap

velog

Back-end/JSP & Servlet

JSP MVC model1 & model2 방식

2022. 7. 12. 22:24
반응형

앞서 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
    'Back-end/JSP & Servlet' 카테고리의 다른 글
    • JSP EL(Expression Language)
    • JSP 코드 블럭
    • servlet get,post 메소드에 특화된 서비스 함수
    • servlet cookie를 이용한 상태 유지
    @Eeap
    @Eeap

    티스토리툴바