[Java] JSP

aseol·2023년 8월 19일
0
post-thumbnail

JSP

JavaServerPages.

Java 언어를 기반으로 웹 애플리케이션을 개발하는 데 사용되는 서버 사이드 스크립트 언어이다. HTML 코드와 Java 코드를 혼합하여 동적 웹 페이지를 생성할 수 있는 기술이며, 주로 비즈니스 로직과 표현 로직을 분리하여 웹 애플리케이션의 유지보수 및 개발을 용이하게 해 준다.

Servlet과 비교

ServletJSP
코드
위치
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(선언문)
스크립트릿에 변수 선언이나 연산 외에 메소드를 작성하면 하면 오류가 뜬다 
➡️ 메소드는 선언문(<%! %>)을 이용하여 구현해야 한다. 

선언문을 이용하자 오류가 사라지고 잘 실행된다.

파일을 열어 보면 🔽

선언문에 작성한 코드들이 클래스 아래에 들어가 있다.
이를 통해, 스크립트릿에 메소드를 작성하면 오류가 발생하지만 선언문에 작성하면 잘 실행되는 이유를 알 수 있다.

  • <%- -%> : 주석

0개의 댓글