jsp 파일에 java 코드 사용
이 전 과정에서 a.txt파일을 응답 해봤는데 왜 템플릿 엔진을 왜 써?
•
java 코드 사용 가능하기 때문에
java코드 사용
JavaToJspController.java 생성
package com.cos.controllerdemo.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class JavaToJspController {
@GetMapping("/jsp/java")
public String jspToJava() {
return "d";
}
}
Java
복사
return “d.jsp” 라 설정 할 필요가 없다. 왜냐면 전 단계에서 view resolver 설정을 했기 때문이다
d.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>This is b</h1>
<%
int num = 10;
%>
<h3>num의 값은 <%= num %></h3>
</body>
</html>
HTML
복사
<%
int num = 10;
%>
HTML
복사
요 부분은 java 코드를 명시하는 부분이다
<%= num %>
HTML
복사
html에 값을 출력한다
이대로 웹브라우저에 던지면 파일을 해석못하기 때문에 파일을 다운하라고 뜰거다.(이 전 과정 참고)
.jsp 파일이 요청이 오면 아파치 웹서버가 톰캣에게 자바코드를 해석해달라고 준다. 그러면서 코드를 해석해서
html 파일로 바꿔서 응답해줘. (응답하지 못하면 클라이언트 쪽에서 웹브라우저를 이해하지 못함.)
http://localhost:8080/jsp/java
이렇게 해석해서 주는게 템플릿 엔진이다
템플릿 엔진을 쓰면 좋은점이 동적인 응답을 할 수 있다(자바코드를 넣어서!)
나중에 페이지는 하나인데 결과는 다른값으로 출력 할 수 있다.
model 사용
JavaToJspController.java
@GetMapping("/jsp/java/model")
public String jspToJavaToModel() {
return "e";
}
Java
복사
추가
e.jsp 생성
@GetMapping("/jsp/java/model")
public String jspToJavaToModel(Model model) { //함수의 파라매터에 Model을 선언하고
User user = new User();
user.setUsername("ssar");
model.addAttribute("username", user.getUsername()); //addAttribute 함수로 전달만
return "e";
}
Java
복사
e페이지에 모델이 들고 있는 데이터를 들고 이동한다.
e.jsp에
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>This is e</h1>
<h3>${username }</h3>
</body>
</html>
HTML
복사
http://localhost:8080/jsp/java/model
잘 전달되고 있다.
model를 통해서 html 페이지로 java 코드를 전달 할 수도 있다.
그리고 왜 html페이지에 java 코드를 쓸 수 있냐 → jsp 파일이라서 (템플릿 엔진이라서)