보통 웹페이지는 웹 디자이너분들이 주도적으로 구현하는 부분인 만큼, 웹 페이지 구현 시 디자이너분들에게 어려운 자바 코드는 거의 사용되지 않습니다. 스크립트릿은 초기의 jsp에서 자바코드를 이용해 화면의 동적인 기능을 구현했지만 지금은 jsp페이지에서는 거의 사용되지 않지만 자바 코드로 화면의 동적인 기능을 구현할 수 있다면 자바코드를 대체해서 나온 여러가지 태그들을 이해하는 데에도 분명 도움이 될 것입니다.
이전까지의 글에서는 컨테이너에서 JSP의 동작과정을 알아보았습니다. HTML태그는 컨테이너 작업 없이 바로 브라우저로 전송되어 화면을 구현하기 때문에 HTML 태그로 화면을 구현하면 조건에 따라 화면을 동적으로 구성할 수 없습니다. 반면에 JSP는 컨테이너에서 자바로 변환되는 과정을 거치므로 JSP에서 제공하는 스크립트 요소를 이용하면 조건이나 상황에 맞게 HTML 태그를 선택적으로 전송할 수 있습니다. 즉 화면을 동적으로 구성할 수 있습니다.
JSP 스크립트 요소란 JSP페이지에서 여러 가지 동적인 처리를 제공하는 기능으로, <% %>기호 안에 자바 코드로 구현합니다. <% %>기호를 스크립트릿이라고 부릅니다.
스크립트 요소의 종류
선언문 : JSP에서 변수나 메서드를 선언할 때 사용합니다.
스크립트릿: JSP에서 자바 코드를 작성할 때 사용합니다.
표현식 : JSP에서 변수의 값을 출력할 때 사용합니다.
선언문은 JSP페이지에서 사용하는 멤버 변수나 멤버 메서드를 선언할 때 사용하며 선언문 안의 멤버는 서블릿 변환 시 서블릿 클래스의 멤버로 변환됩니다. JSP에서 선언문을 코딩해보겠습니다.
3. 실행 단계 : 컨테이너는 class파일을 실행하여 그 결과(HTML, CSS와 자바스크립트 코드)를 브라우저로 전송해 출력합니다.
우선 webcontent 폴더에 hello.jsp파일을 하나 만들어 주었습니다. 그 후에 아래와 같이 코딩을 하고 톰캣을 실행시켜주었습니다.
jsp 실행과정을 정리하면 이클립스에서 hello.jsp를 생성한 후 톰캣을 실행합니다. 그런 다음 브라우저에서 hello.jsp로 요청합니다. 마지막으로 브라우저의 요청을 받은 톰캣 컨테이너는 해당 JSP파일을 읽어 들여와 hello_jsp.java 파일로 변환합니다. 그리고 브라우저로 HTML 형식의 결과를 전송하여 화면에 표시합니다.
초기 웹 프로그램은 서블릿을 이용해서 구현했습니다. 그런데 인터넷 사용자가 폭발적으로 증가하고 사용자에게 보여주는 화면의 기능이나 구성이 복잡해집에 따라 사용자를 고려하는 화면 요구 사항도 점점 늘어났죠. 그래서 현재는 프로그래머가 서블릿으로 화면을 구현하지 않고 주로 디자이너가 이 일을 담당하는 추세입니다.
그래서 서블릿의 기능 중 별도로 화면 기능을 디자이너가 작업하기 쉽게 하기 위해 JSP가 등장했습니다.
JSP는 디자이너 입장에서 화면의 수월한 기능 구현과 개발 후 화면의 편리한 유지관리를 목적으로 도입되었습니다. 기존 서블릿에서는 자바 코드를 기반으로 문자열을 사용해 HTML과 자바스크립트 화면을 구현했으나 JSP는 이와 반대로 HTML, CSS와 자바스크립트를 기반으로 JSP 요소들을 사용해 화면을 구현합니다.
정리해 보자면,
문제점
웹 프로그램의 화면 기능이 복잡해지므로 서블릿의 자바 기반으로 화면 기능 구현 시 어려움이 발생한다
디자이너 입장에서 화면 구현 시 자바 코드로 인해 작업이 어렵다
서블릿에 비지니스 로직과 화면 기능이 같이 있다보니 개발 후 유지관리가 어렵다
해결책
서블릿의 비지니스 로직과 결과를 보여주는 화면 기능을 분리하자!
비지니스 로직과 화면을 분리함으로써 개발자는 비지니스 로직 구현에 집중하고, 디자이너는 화면 기능 구현에만 집중하자!
개발 후 재사용성과 유지관리가 훨씬 수월해진다!
JSP의 구성요소
JSP는 HTML과 자바스크립트를 기반으로 JSP에서 제공하는 여러가지 구성 요소들을 사용해 화면을 구현하는 기술입니다. 주로 웹 프로그램의 화면 기능과 모델2 JSP의 구성 요소는 다음과 같습니다.