3. JSP
JSP(Java Server Pages)
: 동적 웹 페이지를 개발하기 위한 프로그래밍 기술
- Java를 사용하여 서버 측에서 웹 페이지를 생성해 웹 브라우저로 전송
- 장점 )
- 짧은 코드로 동적인 웹 페이지를 생성할 수 있음
- 기본적인 예외는 자동으로 처리됨
- 많은 확장 라이브러리를 사용할 수 있음
- 스레드 기반으로 실행되어 시스템 자원을 절약해줌
- JSP는 JavaEE의 핵심요소 -> JavaEE는 대한민국 정부 표준 프레임워크의 근간
탄생 배경
1. 정적 웹 페이지(Static Web Page)
: 클라이언트가 어떤 형태로 요청을 하던 항상 동일한 모습을 보여주는 웹 페이지
2. 동적 웹 페이지(Dynamic Web Page)
: 동일한 페이지라 할지라도 클라이언트의 요청에 따라 그때 그때 적절한 웹 페이지를 생성해 보여주는 기술
3. 기술의 발전
- 동적 웹 페이지를 구현하는 기술은 전처리를 어떻게 하야네 따라 구분
1) 애플릿
: 앱을 동적으로 만들기 위한 고대의 자바 기술
- 지금은 더 이상 지원되지 않음
2) 서블릿
: 클라이언트 요청에 따라 서버에서 처리 후 응답으로 결과값만 보여주는 구조
- Java 코드 내에서 결과로 보여줄 HTML 코드로 생성 & 조립하는 방식
- 너무 많은 코드가 필요하다는 단점이 존재
3) JSP
: 서블릿의 단점을 보완하여 기본을 HTML로 하고 필요한 부분만 Java 코드를 삽입하는 형태
- 장점 )
- JSP 파일 -> 서블릿
- 한 번 서블릿으로 컴파일된 JSP 파일은 캐시되므로 실질적 성능 저하 없이 사용 가능
- 서블릿 기술도 여전히 사용 가능
- 주로 클라이언트 단은 JSP, 서버 단은 서블릿 요소가 주로 사용됨
cf) 서블릿 vs JSP
▶ 서블릿
- Java 코드 안에서 HTML 페이지를 생성
- 변수 선언 및 초기화가 반드시 선행되어야 함
- 컨트롤러를 만들 때 사용
▶ JSP
- HTML 코드 안에서 필요한 부분만 Java 코드를 스크립트 형태로 작성
- 자주 쓰이는 기능을 내장 객체로 제공 -> request, response, session 등
- 처리된 결과를 보여주는 뷰를 만들 때 사용
기본 구조
- JSP 파일은 웹 브라우저에 띄울 HTML 문서를 생성하는 것
- 기본적인 HTML 구조 + JSP 요소가 혼합된 상태
- JSP 요소
- 지시어
- 스크립트 요소
- 선언부
- 스크립트릿
- 표현식
1. 지시어
: JSP 페이지를 Java 코드로 변환하는데 필요한 정보를 JSP엔진에게 알려주는 부분
- 주로 스크립트 언어나 인코딩 방식 등을 설정
- 종류)
- page : JSP 페이지에 대한 정보를 설정하는 지시어
- include : 외부 파일을 현재 JSP 파일에 포함시키는 지시어
- taglib : 표현 언어에서 사용할 자바 클래스나 JSTL을 선언하는 지시어
1) page
: JSP 페이지에 대한 정보를 설정하는 지시어
- 문서의 타입, 에러 페이지 같은 정보를 설정
2) include
: 별도의 문서를 필요한 페이지에서 포함시킬 수 있음
- 웹 사이트 헤더나, 푸터 등 처럼 해당 사이트 내 모든 페이지에서 반복되어 사용되는 경우
- 세션 확인 같은 작업처럼 모든 페이지에서 삽입되어야 할 요소의 경우
3) taglib
: 표현 언어에서 자바 클래스의 메서드를 호출하거나 JSTL을 사용하기 위한 지시어
2. 스크립트 요소
1) 선언부
: 표현식, 스크립트릿에서 사용할 변수나 메서드를 선언
- _jspService() 메서드 외부에 위치
2) 스크립틀릿
: JSP 페이지가 요청을 받을 때 실행되어야 할 Java 코드를 작성
- _jspService() 메서드 내부에 위치
3) 표현식
: 화면에 값을 하나씩 표현해줄 때 사용
- _jspService() 메서드 내부에 위치
- 실행결과 값이 하나만 나오는 값을 화면에 표시해줄 때 사용
Reference