JSP - 자바 서버 페이지 (Java Server Page)
JSP - 자바 서버 페이지 (Java Server Page)
자바 서버 페이지( JavaServer Pages, JSP)는 HTML내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 서버 사이드 스크립트 언어이다.
HTML만으로는 데이터가 실시간으로 변화하는 것을 처리하거나 저장하기에는 불가능 하기 때문에 동적으로 변화하는 데이터를 처리하고 표시하기 위해서 개발되었다. Java EE(Java Enterprise Edition) 스펙 중 일부로 웹 애플리케이션 서버에서 동작한다.
*Java EE(Java Enterprise Edition)
Java EE는 자바의 기본적인 기능을 정의한 Java SE(Standard Edition)에 웹서버 역할을 추가한 것으로 자바 웹애플리케이션을 동작하게 하는 컨테이너(톰캣) 등을 표준화 한 것이다.
Java EE jsp 기술로는 웹 프로그래밍에서 사용하는 jsp, Servlet 과 비즈니스 모듈, 데이 터베이스를 연동하는 JDBC, 서버의 자원을 관리하는 JNDI를 통한 커넥션 풀 관리등이 있다. JNDI(Java Naming and Directory Interface)는 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견 하고 참고하기 위한 자바 API이다.
*WAS(Web Application Sever) 서버 종류
상용 제품으로 한국 티맥스 소프트의 제우스, 미국 오라클의 웹로직 등이 있다. 오픈 소스로는 아파치 소프트웨어의 아파치 톰캣이 있다.
자바 서버 페이지는 실행시에는 자바 서블릿으로 변환된 후 실행되므로 서블릿과 거의 유사하다고 볼 수 있다. 하지만, 서블릿과는 달리 HTML 표준에 따라 작성되므로 웹 디자인하기에 편리하다.
1999년 썬 마이크로시스템즈에 의해 배포되었으며 이와 비슷한 구조로 PHP, ASP, ASP.NET 등이 있다. 모두 서버쪽에서 실행되는 서버 스크립트 언어이다
JSP 실행순서
*.jsp → *.java (서블릿 자바로 변환) → 컴파일 → *.class 서블릿 클래스로 변환된 뒤에 서블릿 컨테이너 (톰캣)에 의해서 실행된다.
JSP의 처리 과정
- 사용자의 웹 브라우저에 http://서버주소/a.jsp와 같은 형태로 JSP 페이지를 요청
- 웹 서버는 요청한 해당 페이지를 JSP 컨테이너에 처리를 넘김
- 해당 JSP 파일이 처음 요청된 것이면 JSP 파일을 서블릿으로 파싱(a.jsp 페이지를 a_jsp.java로 변환. 이전에 요청되었던 페이지일 경우 6번으로 넘어감.)
- 클래스 파일로 컴파일(a_jsp.java 서블릿 파일은 a_jsp.class 파일로 컴파일)
- 클래스 파일은 메모리에 로딩되어 실행
- 실행결과는 다시 웹 서버에 넘겨짐
- 웹 서버는 웹 브라우저가 인식할 수 있는 HTML형태로 결과를 웹 브라우저에게 응답
>> 클라이언트에서 서비스가 요청되면, JSP의 실행을 요구하고, JSP는 웹 애플리케이션 서버의 서블릿 컨테이너에서 서블릿 원시코드로 변환된다. 그 후에 서블릿 원시코드는 바로 컴파일된 후 실행되어 결과를 HTML 형태로 클라이언트에 돌려준다.