JavaServerPages.
Java 언어를 기반으로 웹 애플리케이션을 개발하는 데 사용되는 서버 사이드 스크립트 언어이다. HTML 코드와 Java 코드를 혼합하여 동적 웹 페이지를 생성할 수 있는 기술이며, 주로 비즈니스 로직과 표현 로직을 분리하여 웹 애플리케이션의 유지보수 및 개발을 용이하게 해 준다.
Servlet | JSP | |
---|---|---|
코드 위치 | Java 클래스로 작성되며, Java 코드 내에 HTML 코드를 포함하여 작성 가능 | HTML 코드 내에 Java 코드를 포함하여 작성 |
목적 | 주로 비즈니스 로직의 처리와 웹 애플리케이션의 컨트롤러 역할을 담당 | 주로 동적인 웹 페이지의 표현 로직을 구현할 때 사용 |
JSP ➡ servlet(.java) ➡ 클래스(.class) ➡ HTML
JSP 파일은 웹 컨테이너에 의해 서블릿 클래스로 변환되고 컴파일된다 (이때, .jsp 파일이 .java 파일로 변환되며 웹 애플리케이션의 work 디렉토리에 저장된다).
실행하면 🔽
JSP 파일이 Servlet으로 변환되면서 Java 파일이 만들어진다.
파일을 열어 보면 메소드와 출력문들이 Servlet형태로 만들어진 것을 볼 수 있다.
<%@ %>
: Directive(지시자)
➡️ JSP 페이지의 설정과 지시를 위해 사용
디렉티브는 웹 컨테이너에게 특정한 정보를 전달하거나 페이지의 속성을 설정하는 역할을 한다. JSP 페이지의 맨 위에 위치하며, JSP 페이지 자체의 전반적인 동작을 설정하거나 조정하는 데 사용한다.
page 디렉티브 (<%@ page %>)
include 디렉티브 (<%@ include %>)
taglib 디렉티브 (<%@ taglib %>)
<% %>
: Scriptlet
➡️ Java 코드를 삽입
동적인 로직을 구현하거나 변수를 정의하고 처리할 때 사용한다.
파일을 열어 보면 🔽
_jspService 라는 메소드 아래에 스크립트릿에 작성한 코드들이 들어가 있다.
<%= %>
: Expression(표현식)
➡️ out.println 과 비슷 (출력)<%! %>
: Declaration(선언문)
스크립트릿에 변수 선언이나 연산 외에 메소드를 작성하면 하면 오류가 뜬다
➡️ 메소드는 선언문(<%! %>)을 이용하여 구현해야 한다.
선언문을 이용하자 오류가 사라지고 잘 실행된다.
파일을 열어 보면 🔽
선언문에 작성한 코드들이 클래스 아래에 들어가 있다.
이를 통해, 스크립트릿에 메소드를 작성하면 오류가 발생하지만 선언문에 작성하면 잘 실행되는 이유를 알 수 있다.
<%- -%>
: 주석