몰입하며 나아가는 개발이란

Language/JSP

JSP 란? (Java Server Page)

류하을 2020. 1. 27. 14:01

JSP 란?

Java Server Page의 약자이며, 글자 그대로 자바 서버 페이지 이다.

JSP는 "HTML코드 내에 script로 작동하며, 웹서버에서 동적으로  웹페이지를 생성하여 웹브라우저에 돌려주는 웹어플리케이션 도구." 라고 볼 수 있다. 즉, JSP가 실행되면 Java에서 Servlet으로 변환되고, 웹 어플리케이션 서버(WAS)에서  동작되면서 필요한 기능을 수행하며, 생성된 데이터를 클라이언트로 응답하는 기능을 수행한다. 또한, 웹환경에서 Java를 쉽게 사용 할 수 있도록 만들어진 Java 기반의 script 언어이기 때문에, 자바의 기능을 그대로 사용할 수 있으며, Java와 동일하게 운영체제를 가리지 않는다는 장점이 있다.

JSP 동작원리 및 순서

위 그림은 JSP 동작 순서를 보여주고 있다.

client에서 어떤 동작에 의해 hello.jsp를 요청하게되면,

JSP 컨테이너가 hello.jsp파일을 읽고,

JSP 컨테이너에서 Generate작업을 통해 hello.java(Servlet) 파일을 생성하게되고,

다시 hello.class로 컴파일 되어 Execute를 통해 HTML 파일을 JSP 컨테이너에 전달,

JSP 컨테이너는 HTTP 프로토콜을 통해  Execute된 HTML 파일을 client로 응답하게된다.


JSP 내장객체

위 동작원리를 보면 Java의 Servlet을 자동생성 및 자동 컴파일을 해주는 역할을 하고 있기 때문에 Servlet을 한번쯤은 살펴볼 필요가 있으며, 이러한 동작을 하기 때문에 JSP는 내장객체를 갖고 있다.

종류 Return Type  
request javax.servlet.http.HttpServletRequest 요청 정보를 저장하고 있는 객체
response javax.servlet.http.HttpServletResponse 응답 정보를 저장하고있는 객체
session javax.servlet.http.HttpSession 세션 정보를 저장하고 있는 객체
application javax.servlet.ServletContext 웹 어플리케이션 Context의 정보를 저장하고 있는 객체
pageContext javax.servlet.jsp.PageContext JSP 페이지에 대한 정보를 저장하고 있는 객체
page java.lang.Object JSP 페이지를 구현한  자바 클래스 객체
out javax.servlet.jsp.jsp.jspWriter 출력 스트림 객체
config javax.servlet.ServletConfig 설정 정보를 저장하고 있는 객체
exception java.lang.Throwable 예외가 발생한 경우에 사용되는 객체 

JSP에서 주로 사용하는 메소드

request in method

Method Return Type  
getParameter(name) String name에 저장된 값을 불러오는 메소드
getParameterValues(name) String[] name에 저장된 모든값을 불러오는 메소드 
setAttribute(String key, Object value) void attribute 명, 값을 설정하는 메소드
getAttribute(String key) Object attribute명으로 값을 불러오는 메소드
removeAttribute(String key) void attribute명과 값을 지우는 메소드
getAttributeNames() java.util.Enumeration 모든attribute의 명을 불러오는 메소드

response in method

Method Return Type  
sendRedirect(url) void url페이지로 제어가 이동함.

session in method

Method Return Type  
getId() Stirng session의 고유 ID를 리턴
setMaxInactiveInterval(time) void session의 유지시간 설정(초)
invalidate() void session의 모든속성 값을 제거
getCreationTime() long session이 생성된 시간을 리턴
getLastAccessedTime() long 요청이 시도된 마지막 시간을 리턴

WAS (Web Application Server)

JSP의 동작원리를 이해하게되면 WAS라는 개념을 접하게 되므로, WAS에 대해서도 간략하게 정리 해놓았다.

웹 어플리케이션 서버란 WAS라고 칭하며, HTTP를 통해 사용자나 컴퓨터 장치에 어플리케이션을 수행해주는 Middle Ware이다. 쉽게 말해 웹 서버와 웹 컨테이너가 합쳐진 구조로 웹상에서 사용하는 컴포넌트를 올려놓고 사용하게 되는 서버이다. 즉, WAS는 jsp, asp, php등 개발언어를 읽고 동적  컨텐츠를 처리하는 일을 한다.

 

WAS개념 이미지


'Language > JSP' 카테고리의 다른 글

EL 태그 란? (Expression Language Tag) ${}  (1) 2020.01.27