Search

13. 스프링부트 Controller JSP파일에 Java 코드 사용하기

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 파일이라서 (템플릿 엔진이라서)

*참고