jsp, tomcat 간단하게 그림으로 이해하기!
jsp는 템플릿 엔진을 가지고 있는데, 이 템플릿 엔진이란 html 파일에서 java 코드를 사용할 수 있는 친구입니다
그림을 통해 설명해드릴게요
템플릿 엔진, jsp 파일이 없다면 ??
index.html 파일이 있다고 가정해봅시다.
HTML파일에는 java코드도 들어있는데, 클라이언트가 이 html파일을 web 서버에 요청하면 web서버는 java코드를 읽을 수 없어서 그대로 화면에 int num=10;, num;이 찍히게 됩니다. 😭
그러나 클라이언트가 index.jsp파일을 요청하면, 웹서버에서는 jsp를 Tomcat(톰캣)에게 넘겨서 JAVA코드를 해석하게 합니다.
이렇게 해석이 완료된 HTML파일을 클라이언트에게 응답하는 역할을 합니다
➕참고로 Servlet은 자바코드 안에 HTML파일을 넣는 거라 훨씬 복잡합니다...
➡️즉, jsp파일은 브라우저가 java코드를 이해할 수 있도록 템플릿 엔진이 부착된 파일이고, 그 java코드는 톰캣이 해석해서 해석이 완료된 html파일을 클라이언트에게 응답합니다.
이제 jsp파일에 JAVA코드를 사용해보자!
jsp파일은 위와 같은 경로를 지정해주고, views아래에 넣어줘야해요. 그리고 xml에 기본 경로도 입력해줘야합니다
예시
Controller에 jsp파일을 get매핑합니다!
return "d"라고 하면 d.jsp파일을 반환하는 것이고, 파일을 반환하기 때문에 @Controller입니다.
여기서 Model model을 함수의 파라미터에 선언하고, 아래에 객체를 선언 후, 객체 값을 넣으면 model.addAttribute 함수로 객체의 값을 return "e" - e.jsp 파일에 전달해줄 수 있습니다.
e.jsp파일 예시
그 값은 ${username}으로 받으면 됩니다
출력화면
그러면 출력이 정상적으로 됩니다!
만약 username이 자바코드 내에서 바뀌어도 html파일에서는 동적으로 결과값을 출력할 수 있게 됩니다.
➡️즉 jsp파일을 사용하면 html 파일에 자바코드의 값을 반환할 수 있어 동적 값을 전달할 수 있습니다 !