Language/Etc.

JSP 정의 및 기본 구조와 문법

재은초 2024. 6. 1. 14:23
반응형

JSP(Java Server Pages)란?

  • 서블릿은 기본적으로 자바 코드인데 결과로 보여줄 HTML 코드를 일일이 자바로 생성 및 조합하다보니 너무 많은 코드가 필요한 단점이 있다. 그래서 HTML을 기본으로 하고 필요한 부분만 자바 코드를 삽입하는 형태인 JSP가 탄생하게 되었다.
  • JSP는 동적인 웹 페이지를 개발하기 위한 웹 프로그래밍 기술이다. 이름에서처럼 자바 언어를 사용하여 서버 측에서 웹 페이지들을 생성해 웹 브라우저로 전송해준다. 자바를 서버 개발 언어로 자리 잡게 한 일등공신이다.

  • 위의 그림은 JSP 파일을 서블릿으로 변환하여 서블릿을 실행하는 방식이다. JSP와 서블릿은 용도에 따라 더 유리한 기술을 골라 사용할 수 있다. JSP는 클라이언트에 보여지는 결과 페이지를 생성할 때 주로 쓰이며, 서블릿은 UI 요소가 없는 제어나 기타 처리 용도로 쓰인다.

장점

  • 짧은 코드로 동적인 웹 페이지를 생성할 수 있다.
  • 기본적인 예외는 자동으로 처리된다.
  • 많은 확장 라이브러리를 사용할 수 있다.
  • 스레드 기반으로 실행되어 시스템 자원을 절약해준다.

 

JSP 기본 구조

// 지시어
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

// 스크립트 요소 (선언부)
<%!
String str1 = "JSP";
String str2 = "안녕하세요";
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HelloJSP</title>
</head>
<body>
	// 스크립트 요소(표현식)
	<h2>처음 만들어 보는 <%= str1 %></h2>
    <p>
    	// 스크립트 요소(스크립틀릿)
    	<%
        out.println(str2 + str1 + "입니다. 열공합시다");
        %>
    </p>
</body>
</html>

 

지시어(Directive)

  • 지시어는 JSP 페이지를 자바(서블릿) 코드로 변환하는데 필요한 정보를 JSP 엔진에 알려준다. 주로 스크립트 언어나 인코딩 방식 등을 설정한다.
<%@ 지시어 종류 속성1="값1" 속성2="값2" ... %>

지시어 종류

  • page: JSP 페이지에 대한 정보를 설정한다.
  • include: 외부 파일을 현재 JSP 페이지에 포함시킨다.
  • taglib: 표현 언어에서 사용할 자바 클래스나 JSTL을 선언한다.

 

스크립트 요소(Script Elements)

  • 스크립트 요소는 JSP에서 자바 코드를 직접 작성할 수 있게 해준다. 용도에 따라 선언부, 스크립틀릿, 표현식이 있다.

선언부(Declaration)

  • 선언부에서는 스크립틀릿이나 표현식에서 사용할 멤버 변수나 메서드를 선언한다.
  • 서블릿으로 변환시 _jspService() 메서드 외부에 선언된다.
<%! 메서드 선언 %>

스크립틀릿(Scriptlet)

  • JSP 페이지가 요청받을 때 실행되어야 할 자바 코드를 작성하는 영역이다. 
  • 서블릿으로 변환시 _jspService() 메서드 내부에 그대로 기술된다.
  • 자바에서 메서드 내부에 또 다른 메서드를 선언하는게 불가능하듯이, 스크립틀릿에서는 선언부에서 정의한 메서드를 호출만 할 수 있을 뿐 다른 메서드를 선언할 수는 없다.
<% 자바 코드 %>

표현식(Expression)

  • 프로그래밍에서 표현식이란 실행 결과로 하나의 값이 남는 문장을 의미한다. 즉 상수, 변수, 연산자를 사용한 수식과 반환값이 있는 메서드 호출 등이 모두 표현식에 속한다.
  • JSP의 표현식도 이와 마찬가지로 주로 변수 값을 웹 브라우저 화면에 출력할 때 사용한다.
<%= 자바 표현식 %>

 

Reference

  • Must Have 성낙현의 JSP 자바 웹 프로그래밍
반응형