본문 바로가기
2222
etc/JSP

MVC 방식으로 나누기

by PARK TAE JOON 2020. 11. 5.
1. VIEW단이 되는 JSP파일에는 코드블럭을 최대한 없애고 HTML파일 형식으로 작성한다.
2. MODEL 정의, CONTROLLER를 할 수 있는 JAVA파일에 각종 변수, 조건식들을 정의한다.

 

# spag.java

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/spag")
public class Spag extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// controller
		int num = 0;
		String num_ = request.getParameter("n");
		if(num_ != null && !num_.equals("")){
			num = Integer.parseInt(num_);
		};

		String result = "";
		if(num != 0) {
			result = "홀수";
		} else {
			result = "짝수";
		}
		
		request.setAttribute("result2", result);
		//redirect 전혀 새로운 작업
		//forward 이어서 작업, 이것을 할 것이다. jsp로 전달
		RequestDispatcher dispatcher 
				= request.getRequestDispatcher("spag.jsp");
				
		dispatcher.forward(request, response);
		
	}
}

# spag.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<!-- view --> 
<%=request.getAttribute("result2") %>입니다. // EL을 사용해서 바꿀 것이다.

</body>
</html>

EL을 사용해서 JAVA코드를 없애고 좀 더 간단하게 표기해보자.
<%=request.getAttribute("result2") %>
// 이거를 아래와 같이 바꾼다.
${result2}

▷ list나 map도 사용가능하다.

# Spag.java

// #2. 리스트가 출력되는지 확인해보자.
String[] names = {"newlec"};
request.setAttribute("names", names);
		
// #3. 맵도 가능한지 확인해보자.
Map<String, Object> notice = new HashMap<String, Object>();
notice.put("id", 1);
notice.put("title", "el굿");
request.setAttribute("notice", notice);

#spag.jsp

${names[0]}
${notice.title}

 

댓글