겉바속촉

[spring] MVC 본문

IT일기(하반기)/SPRING

[spring] MVC

겉바속촉 2020. 6. 26. 10:45
728x90
반응형

MVC 프로젝트 생성을 해볼게요

 

그 전에 MVC에 대해서 개념을 알아봅시다:)

 


 

M: Model_각 로직을 담당하는  자바클래스(POJO)컨트롤러

V: View_보여지는 부분을  담당_HTML,Jsp,React,Angular….

C: Controller_처음시작시 무조건 호출되는 프론트 컨트롤러를 의미_Servlet

(스프링에서 프론트 컨트롤러는 딱하나 -> DisPatherServlet)

 


 

 

 

프로젝트 하나 생성해줄게요:)

 

 

 

프로젝트name 만들어주신 후에 Next

 

 

그리고 이름까지 생성해주세요

####.###.### ---> 요런식으로해주시면 됩니다!!

 

 

 

 

그리고 pom.xml 들어가셔서 5.1.2로 framework-version 고쳐주세요:)

 

 

 

servlet-context.xml에서 다음 표시한부분으로 고치기

 

 

패키지 만들면서 자동으로 만들어진 컨트롤러 지우기

 

 

우리가 새로 만들어주기 

 

 

 

어노테이션 컨트롤러 해주기--->컴포넌트라고 이해하기

 

 

 

폴더 하나랑 그 안에 jsp파일 하나 만들어주세요

 

 

 

 

result.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"  %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
 <script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<title>Insert title here</title>
</head>
<body>
<h1>result.jsp파일입니다</h1>
<h2>Hello Controller로 부터 포워드</h2>
<b>이름: ${name}</b><br>
<b>이름: ${requestScope.name }</b><br>
<b>주소: ${requestScope.addr }</b><br>
</body>
</html>

 

 

그리고 컨트롤러

 

보라돌이를 name으로 받고

서울구로를 addr로 받습니다.

 

return "result";

 

라고 해주시는 거에요!!

 

여기서 포인트는 result만 적어도 된다는 점입니다

포워드가 생략된 거쥬!!
즉 (WEB-INF/day0626/result.jsp)가 생략된거에요:)

 


include는 갔다가 돌아온다고 생각해주시면 되지만

포워드는 우리가 정보를 가지고 그쪽으로 간다고 생각해주시면 됩니다.

 

 

HelloController.java

package spring.day0626.ex1;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class HelloController {
	
	
	@RequestMapping(value = "/", method=RequestMethod.GET)
	public String hello(Model model)
	{
		//Model은 request에서 데이터를 저장하기 위한 인터페이스
		//서블릿에서 코딩했던 request.setAttribute와 같다
		model.addAttribute("name", "보라돌이");
		model.addAttribute("addr", "서울구로");
		
		return "result"; //포워드(WEB-INF/day0626/result.jsp)가 생략되어 있는 것
	}

}

 


그리고 템플릿 하나 만들어줄게요

필요한 코드들 넣어서 아예 만들어주는거쥬

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"  %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
 <script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<title>Insert title here</title>
</head>
<body>
<h1></h1>
</body>
</html>

 

server 돌릴 때는 항상 하나만 켜주세요!!

 

 

 

그럼 다음과 같이 결과값이 잘 나오쥬?!

728x90
반응형