| JSP(Java Server Page)란?
Java를 이용한 서버 사이드 스크립트언어로 같은 부류에 속하는 것으로는 PHP, ASP가 있다.
확장자는 . 주로 결과를 출력할때 jsp를 사용한다.
실행시에 java.servlet.http.HttpServlet 클래스를 상속받는 자바 소스코드로 변환된 다음 컴파일되어 실행된다. 이 JSP 파일은 Servlet 클래스로 변환하고 실행시켜주는 역할을 하는 프로그램이 Servlet Container이다. 즉 항상 JSP는 서블릿으로 바껴서 실행된다는 점을 기억하자. HTML 파일과 비슷하게 생겼다고 HTML 작동과 유사할 것이라고 생각하면 안된다. 대표적으로 오픈 소스 웹 서버/ 서블릿 컨테이너인 톰캣이 있다. 하나의 JSP 페이지가 하나의 자바 클래스이기 때문에 모든 자바 라이브러리를 끌어다 쓸 수 있다. 그러나 디자인 적용, 수정 등의 문제로 Java언어대신에 JSP에 등장하게 된 것이 JSTL과 EL인데, 이건 나중에 살펴보자.
| JSP와 Servlet의 상관관계
서블릿과 JSP는 서로 상호 보완적인 관계를 가지고 있다. 서블릿은 IDE 등에서 지원을 좀 더 잘해주므로 로직을 구현하기에 알맞지만, HTML을 출력하기엔 불편하다. JSP는 로직을 구현하는 것은 불편하지만 필요한 html문을 그냥 입력하면 되므로 HTML을 출력하기엔 편리하다. 이러한 서블릿과 JSP를 좀 더 잘 사용하기 위해서 forward가 사용되는 경우가 많다. 즉, Servlet과 JSP의 장단점을 해결하기 위해서 Servlet에서 프로그램 로직이 수행되고, 그 결과를 JSP에게 포워딩하는 방법이 사용되게 되었다. 이를 Servlet과 JSP연동이라고 한다.
forward란?
WAS의 서블릿이나 JSP가 요청을 받은 후 그 요청을 처리하다가, 추가적인 처리를 같은 웹 어플리케이션안에 포함된 다른 서블릿이나 JSP에게 위임하는 경우가 있다. 이렇게 위임하는 것을 포워드(forward)라고 한다. 위 그림으로 forward가 어떻게 동작되는지 살펴보면 다음과 같다.
1. 웹 브라우저에서 Servlet1에게 요청을 보냄
2. Servlet1은 요청을 처리한 후, 그 결과를 HttpServletRequest에 저장
3. Servlet1은 결과가 저장된 HttpServletRequest와 응답을 위한 HttpServletResponse를 같은 웹 어플리케이션 안에 있는 Servlet2에게 전송(forward)
4. Servlet2는 Servlet1으로 부터 받은 HttpServletRequest와 HttpServletResponse를 이용하여 요청을 처리한 후 웹 브라우저에게 결과를 전송
| JSP 스크립트 요소 문법
JSP는 HTML태그와 자바코드를 섞어서 개발할 수 있다. JSP 페이지에서는 선언문(Declaration), 스크립트릿(Scriptlet), 표현식(Expression) 이라는 세 가지의 스크립트 요소를 제공하고 있다. 그 외의 기타 구성 요소로 디렉티브(Driective), 표현언어(Expression Language), 기본 객체(Implicit Object), 정적인 데이터, 표준 액션 태그(Action Tag), 커스텀 태그(Custom Tag)와 표준 태그 라이브러리(JSTL), Filter & Listener 등이 있다.
'■ 용어 정리' 카테고리의 다른 글
[용어정리] EL(Expression Language) 이란? (0) | 2020.04.28 |
---|---|
[용어정리] SCOPE(스코프) - In Servlet & JSP (0) | 2020.04.28 |
[용어정리] Servlet(서블릿) 이란? (0) | 2020.04.28 |
[용어정리] 웹서버, WAS 란? (0) | 2020.04.28 |
[용어정리] 웹 이란? (0) | 2020.04.28 |