JSP (Java Server Page)
- 동적인 웹 페이지를 개발하기 위한 웹 프로그래밍 기술
- JAVA 를 사용하여 서버측에서 웹 페이지를 생성하여 웹 브라우저로 전송
장점
- 짧은 코드로 동적인 웹 페이지를 작성
- 기본적인 예외는 자동으로 처리
- 많은 확장 라이브러리를 사용할 수 있음 -> 자바는 오픈소스, 오픈되어 있는 라이브러리가 많음
- 스레드 기반으로 실행, 시스템 자원을 절약해줌
활용 사례
- 대한민국 전자정부 프레임워크의 기본
- 전부나 공기업 주도의 사업, 대규모 기업용 시스템 구축에 사용 (우리나라만)

애플릿 <-> 액티브엑스(Active X)
- 자바에서 웹을 동적으로 만들기 위한 기술
- 웹에서 자바 어플리케이션을 전송 후 실행
- 속도, 보안, 유연성의 한계로 현재 사용되지 않음
서블릿
- 클라이언트 -> 서버에 요청 -> 응답 결과 전송
- 자바(.java) 를 컴파일 -> 클래스(.class) 파일로 변환
- 서블릿 컨테이너로 아파치 톰캣 사용

JSP의 특징
- 서블릿이 자바 코드를 HTML로 변환하는 과정에서 많은 코드를 생성하는 단점 보완
- HTML 선 작업 -> 필요 부분에 Java를 사용하는 형태
- JSP 파일 -> 서블릿으로 변환 후 실행
- JSP는 FrontEnd 부분을 담당, 서블릿은 BackEnd 를 담당

.html - 정적 페이지
.jsp - 동적 페이지
선언부 (`<%! ... %>`)
- JSP 페이지 내에서 메서드나 변수를 선언할 때 사용됩니다.
- JSP 페이지가 실행될 때 한 번만 처리되며, 클래스 수준에서 선언됩니다.
스크립틀릿 (`<% ... %>`)
- JSP 페이지 내에서 자바 코드를 실행할 수 있는 블록입니다.
- 이 코드는 JSP 페이지가 클라이언트에게 응답하기 전에 실행됩니다.
표현식 (`<%= ... %>`)
- 자바 표현식의 결과를 직접 출력할 때 사용됩니다.
- 이 표현식의 결과는 자동으로 HTML에 삽입되어 브라우저로 전달됩니다.
지시어(Directive)
JSP를 자바(서블릿)으로 변환 시에 필요한 정보를 JSP 엔진에게 알려줌
스크립트 언어, 인코딩 방식 등을 설정
<%@ 지시어 종류 속성1="값1" ,,, %>
page 지시어
문서의 종류, 타입, 에러 메시지, MINE 타입 등을 설정
| 속성 |
설명 |
기본값 |
| info |
페이지에 대한 설명 |
없음 |
| language |
페이지에서 사용할 스크립팅 언어 지정 |
java |
| contentType |
페이지에서 생성할 MINE 타입 지정 |
없음 |
| pageEncoding |
charset 과 같이 인코딩 지정 |
ISO-8859-1 |
| import |
페이지에서 사용할 패키지, 클래스 지정(외부파일) |
없음 |
| session |
세션 사용 여부 설정 |
true |
| buffer |
출력 버퍼의 크기 지정, 사용하지 않으려면 none |
8kb |
| autoFlush |
출력 버퍼가 모두 채워지면 자동으로 비울지 여부 |
true |
| trimDirectiveWhiteSpaces |
지시어 선언으로 인한 공백 제거 여부 지정 |
false |
| errorPage |
에러 발생 시 에러처리 페이지 지정 |
없음 |
| isErrorPage |
현재 페이지가 에러를 처리할지 여부 설정 |
false |
language, contentType, pageEncoding 속성
- JSP 페이지 생성 시 기본 생성되는 지시어
- language : 스크립팅 언어 지정
- contentType : 문서의 MINE, 캐릭터 셋 지정
- pageEncoding : 소스 코드 인코딩 방식 -> 서버하고 다르면 오동작
- import 속성
- - java.lang ~~ : 패키지에 속하지 않는 클래스를 JSP 문서에 삽입하기 위해 사용
buffer, autoFlush
- JSP 에서는 응답 결과를 바로 리턴하지 않고, 버퍼에 저장 후 일정량이 되면 출력
- 요청마다 매번 리턴하는 것보다 효율적
- 버퍼를 사용함으로써 포워드(forward), 에러 페이지를 처리할 수 있음
include 지시어
- <%@ include file=”포함할 파일 경로” %>
- 웹 사이트에서 반복되는 영역, 페이지를 여러 페이지에서 함께 사용할 때 사용함
- JSP 에서 다른 JSP 페이지를 삽입할 때 사용
- include된 파일의 내용도 include한 파일의 내용으로 인식
개인 블로그를 제작한 이후 다른 언어들의 내용은 그 블로그에 포스팅 하고 있다.
이전에 정리했던 내용들과 포스팅 한 내용들도 좀 더 깔끔하게 정리해야 하는데... 후우
다음 달 까지는 끝낼 수 있길..