Programming/SpringBoot

Spring Boot 4강 - Mustache, JSP 연결

상맹 2021. 9. 5. 15:13
반응형

1. Mustache

JSP 는 스프링에서 버렸기 때문에 설정하는것이 굉장히 까다롭다.

따라서 스프링에서 이용가능 한 mustache는 설정이 쉽다.

Thymeleaf, Apache Freemarker, Mustache, Groovy Templates 종류가 있다.

@RestController , @Controller => 외부의 사용자의 요청을 받는것(주소요청(URI) 밖에 없다.)

그주소에 맞는 controller method를 맞춘다. => 디스패쳐 컨트롤러가 모든 컨트롤러를 관리한다.

 

- RestController : 데이터를 리턴한다

- Controller : 파일을 리턴한다.

 => DI가 불가하다

 

templates : => 프레임워크, html 에 자바코드(다른 언어도 상관 없음.)를 쓰는것. 

 View Reslover 클래스

  - template engine : html에 java 코드(그 외언어 등) 을 쓰는것

package web;

import java.util.ArrayList;
import java.util.List;

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

// RestController(데이터를 리턴한다)
// Controller(파일을 리턴한다)

@Controller
public class FrontController {
	
	// http://localhost:8080/home
	// 디스패쳐 서블릿 /home 파싱
	// IOC 컨테이너에 @Restcontroller, @Controller 로 생성된 객체만 찾는다.
	// 메서드를 호출한다.
	
	@GetMapping("/home")
	public String home(Model model) { // request == model
		// ViewResolver 클래스
		// src/main/resources/templates(prefix)
		// .mustache(suffix)
		
		String name = "홍길동";
		model.addAttribute("name", name);
		
		List<Board> boards = new ArrayList<>();
		boards.add(new Board(1,"제목1"));
		boards.add(new Board(2,"제목2"));

		
		model.addAttribute("boards",boards);
		
		return "home"; // RequestDispatcher가 자동 작동
	}
}

 → RequestDispatcher가 자종으로 작동한다(Sendreirect X) 

 → DispatcherServlet이 매개변수 주입

http://localhost:8080/home => 입력시 home 파일이 없어서 호출 불가
html 파일 생성전 css, html, jsp file encding UTF-8로 변경
other
Tool이 mustache 지원하지 않기 때문에 확장자 명을 mustache로 변경

2. JSP 연결

https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jasper

 

 

* Maven(의존성 관리 도구) -> gradle

  => 라이브러리 의 의존의 관리하는 도구

  => 저장소가 같은 공간을 사용하고  공통 Rapository 가 있으며 Spring 사용시에는 -> pom.xml에 추가 하면도니다. 

  => 의존성이 있기때문에 A를 다운받게 된다면 다른 것들(B,C)도 다같이 다운받아 진다.(A->B->C)

  ex) Jasper 에도 다른 것들이 엄청 많지만 Jasper만 다운 받아도 의존성으로 인해 다같이 다운받아진다.

 

 

 

 

 

3. yml 로 변경

 

→ yml이란?

 

YAML - 위키백과, 우리 모두의 백과사전

YAML은 XML, C, 파이썬, 펄, RFC2822에서 정의된 e-mail 양식에서 개념을 얻어 만들어진 '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식이다. 2001년에 클라크 에반스가 고안했고, Ingy dot Net 및 Oren Ben-Kiki

ko.wikipedia.org

 

 

 

yml 작성시 무조건 자동완성으로 선택(적어서 하면 안된다!)

prefix ,suffix 설정 : WEB-INF(설정파일 들 넣는곳, 남들이 알면 안되는 것들 넣는곳 => url 접근 x , uri 접근 o => 따라서 Framwork) 

 

 * server.xml : tomcat의 thread pool 관리 , port 변경 

 * context.xml => xml이 실행될때 자바에 객체가 만들어진다. 서버 실행될때 한번만 실행된다.

 * web.xml => 서버 실행시 띄울 수 있는 파일을 만들어 놓았다가 request 시 마다 실행된다.

  => context.xml 는 static과 유사, web.xml은 heap과 유사

 

4. Maven - 의존성 관리

Maven을 사용하여 라이브러리를 가져올 때에는 의존관계에 있는 라이브러리 모두를 가져 온다.

 → 하나하나 모든 라이브러리를 다운 받을 필요X

 

* form 태그에서의 Methods

→ 메서드 GET   (SELECT)

→ 메서드 POST (INSERT)

→ 메서드 PUT  (UPDATE)

→ 메서드 DELETE(DELETE)

 

from 태그 → POST, GET 방식만 사용가능

* 로그인 예외 : POST 사용

form 태그로 보내는 데이터는 application/x-www-form-urlencoded type 스프링에서 받을 때에는 메서드의 매개변수에 변수만 적어두면 됨. (request.getParameter 동작)

 

 

5. XML

<Python>
class Animal:
num = 10
name = "홍길동"
<Java>
class Animal{
int num=10;
String name = "홍길동";
}
<JavaScript>
var Animal ={
num:10,
name:"홍길동"
}

각 언어마다 문법이 다르다. 따라서 서로 공유를 할 경우 해석을 할 수가 없어 이를 해결하기 위하여 공용어로 표시해주는것이 XML이며, 용량을 경량화한 형태인 JSON을 많이 사용한다.

반응형