-
[부스트코스] JSP -BE부스트코스 코딩일지/DB 연결 웹 앱 2020. 3. 12. 21:56
JSP란?
Java 언어를 기반으로 하는 Server Side 스크립트 언어입니다.
HTML에 자바 코드를 넣어 동적인 웹 페이지를 생성하는 도구로 사용합니다.
예시를 보겠습니다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>sum10</title> </head> <body> <% int total = 0; for(int i = 1; i <= 10; i++){ total = total + i; } %> 1부터 10까지의 합 : <%=total %> </body> </html>
<% %> 코드 블록은 함수의 역할을 하고
<%= > 코드블럭은 print 역할을 합니다.
servlet 만으로 작성된 코드는 더 복잡했는데 JSP를 사용하니 한결 간결해진 것을 확인할 수 있습니다.
[출처 : edwith.org/boostcourse-web/lecture/16702/]
JSP 라이프사이클
JSP 코드는 요청을 받게 되면 서블릿 소스코드로 변환된 후 컴파일 하여 실행됩니다.
서블릿으로 컴파일되어 실행될 때 어떤 라이프사이클을 가지고 실행되는지 알아봅시다.
servlet과 마찬가지로 jsp파일 또한 service, init, destroy 메서드를 가지고 있습니다.
자바 코드로 변환된 JSP파일은 파일 탐색기를 통해 확인해 보면,
<% %> 코드블럭 안에 작성된 코드들은 모두 service 메서드 안에 작성되어있는 것을 확인할 수 있습니다.
init, destroy 메서드 안에 코드를 작성하고 싶다면
<% System.out.println("_jspService()"); %> <%! public void jspInit() { System.out.println("jspInit()!"); } public void jspDestroy() { System.out.println("jspDestroy()"); } %>
예제와 같이 <%! %> 코드 블록 안에 작성하면 됩니다.
예제를 통해 처음 JSP 파일이 실행될 때는 init, service 메서드가 실행되고, 새로고침 할 시에는 service 메서드만 실행된다는 것을 알 수 있습니다. 또한 다시 실행하거나 수정한 뒤 실행하면 destroy, init, service 순으로 실행되는 것을 알 ㅅ 수 있습니다.
[출처 : https://www.edwith.org/boostcourse-web/lecture/16703/]
JSP 문법
선언문
: <%! %>
선언문은 JSP 페이지 내에서 필요한 멤버 변수나 메서드가 필요할 때 선언해 사용하는 요소입니다.
스크립트릿
: <% %>
주로 프로그래밍의 로직을 기술할 때 사용됩니다.
이 부분에 쓰인 코드들이 servlet으로 변환되면 service 메서드 안에 들어가게 되는 것입니다.
표현식
: <%= %>
JSP 페이지에서 응답에 해당하는 부분을 표현합니다.
내장 객체인 out 객체의 print() 또는 println() 메서드를 사용해서 출력됩니다.
주석
1. HTML 주석
: <!-- -->
2. JSP 주석
: <%-- -->
3. 자바 주석
: // OR /* */
JSP 페이지에서 주석은 세 가지 모두 이용 가능합니다.
다만 차이점은,
1번은 변환된 소스코드가 html로 읽어질 때 주석으로 처리된다는 것
2번은 소스코드가 변환될 시에 주석으로 처리되어 소스 변환 처리가 되지 않는다는 것
3번은 변환된 소스코드가 실행할 때 주석으로 처리된다는 것입니다.
[출처: https://www.edwith.org/boostcourse-web/lecture/16704/]
JSP 내장 객체
_jspService() 메서드에 삽입된 코드의 윗부분에 미리 선언된 객체들이 있습니다.
이 객체들을 JSP 내장 객체라고 하며, 별도의 선언 없이 다른 부분에서 사용 가능합니다.
[출처 : https://www.edwith.org/boostcourse-web/lecture/19882/]
'부스트코스 코딩일지 > DB 연결 웹 앱' 카테고리의 다른 글
[부스트코스] scope - BE (0) 2020.03.13 [부스트코스] redirect & forward - BE (0) 2020.03.13 [부스트코스] WEB UI 개발 -FE (1) 2020.02.24 [부스트코스] JavaScript -FE(4) (0) 2020.02.22 [부스트코스] JavaScript -FE(3) (0) 2020.02.21