본문 바로가기

JSP

웹과 JSP 이해하기

먼저 인터넷은 컴퓨터가 서로 연결되어 TCP/IP라는 통신 프로토콜을 이용하여 정보를 주고받는 전 세계의 컴퓨터 네트워크이다. 인터넷을 통해 광범위한 정보와 서비스를 베공할 수 있는데 그 중 한 서비스가 웹이다.

 

웹은 기본적으로 클라이언트/서버 방식으로 동작한다. 클라이언트(웹 브라우저)가 특정 페이지를 웹 서버에 요청하면 이를 처리한 후 그 결과를 클라이언트에게 보내어 응답하는 것이다.

 

정적인 웹 페이지는 컴퓨터에 저장된 텍스트 파일을 그대로 보는 것이고, 동적 웹 페이지는 저장된 내용을 다른 변수로 가공 처리하여 보는 것이다.

 

웹 프로그래밍 언어는 클라이언트 측 실행 언어와 서버 측 실행 언어로 구분되며, 자바를 기반으로 하는 JSP는 서버 측 웹 프로그래밍 언어 중 하나이다. 원래는 서블릿을 먼저 개발했으나 서블릿 개발 방식이 그리 쉽지 않아 HTML 코드에 직접 삽입할 수 있도록 개발된 기술이 JSP이다. JSP는 서블릿과 동떨어진 기술이 아니며, 실제로 웹 애플리케이션 서버에서 클라이언트에게 서비스될 때는 서블릿으로 변경된다.

 

JSP란 Java Server Pages의 약자로 HTML 내에 자바 코드를 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 서버 측 웹 프로그래밍 언어 중 하나이다.

 

JSP의 특징

-서블릿 기술의 확장이다.

-유지 관리가 용이하다.

-빠른 개발이 가능하다.

-JSP를 이용하여 개발하면 코드 길이를 줄일 수 있다.

(jsp를 이용하면 java 코드와 html 코드를 jsp 파일에 함께 작성할 수 있기 때문이다.)

 

JSP는 생성부터 파괴까지 번역 -> 컴파일 -> 로딩 및 초기화 -> 실행 -> 소멸의 과정을 거친다.

 

JSP는 태그를 이용하여 문법을 기술한다. JSP 태그는 크게 스크립트(script tag), 디렉티브 태그(directive tag), 액션 태그(action tag)로 나뉜다. 스크립트 태그는 HTML 코드에 자바 코드를 넣어 프로그램이 수행하는 기능을 구현할 수 있고, 디렉티브 태그는 JSP페이지를 어떻게 처리할 것인지 설정하여 JSP 페이지에 대한 정보를 JSP 컨테이너에 보낸다. 액션 태그는 클라이언트/서버에 어떤 작동을 행하도록 명령을 지시하는 XML 형태의 태그로, JSP페이지 사이에서 제어를 이동할 수도 있다.

JSP 개발 환경 도구
자바 개발 환경 : JDK
웹 서버 : 톰캣
통합 개발 환경 : 이클립스

자바 개발 환경
JDK : JSP는 HTML 코드 내에 자바 코드를 작성하기 때문에 자바 개발 도구인 JDK가 반드시 설치되어 있어야 한다.

웹서버
톰캣 : 웹 프로그래밍 언어로 작성된 웹 페이지가 실행되어 웹 브라우저에 나타나도록 하기 위해 웹 컨테이너를 설치해야 한다. JSP 웹 컨테이너로 자주 사용되는것 중에서 가장 유명한것은 톰캣이다. 톰캣은 오픈소스 프로젝트로서 무료로 누구나 사용할 수 있다.
통합 개발 환경 
이클립스 : JSP 코드를 작성한 후 이를 컴파일하여 오류를 검사하고 실행 결과를 확인할 수 있는 통합 개발 환경(IDE)으로 개발자들에게 가장 인기 있는 이클립스를 선택하여 설치한다.

웹 프로그래밍 언어는 클라이언트 측 실행 언어와 서버 측 실행 언어로 구분되며, 자바를 기반으로 하는 JSP는 서버 측 웹 프로그래밍 언어 중 하나이다. 서블릿 기술 확장인 JSP는 유지 관리가 용이하고 빠른 개발이 가능하며 코드 길이를 줄일 수 있다.

JSP 페이지는 하나의 서블릿 프로그램으로 변환되어 실행된다. 생성부터 파괴까지 번역->컴파일->로딩 및 초기화->실행->소멸의 과정을 거친다.

스크립트 태그
<%...%> 사용
JSP페이지가 서블릿 프로그램에서 서블릿 클래스로 변환할 때 
-JSP 컨테이너가 자바 코드가 삽입되어 있는 스크립트 태그를 처리하고 나머지는 HTML 코드나 일반 텍스트로 간주

선언문(declaration) <%!...%> : 자바 변수나 메소드를 정의하는데 사용한다.
스크립틀릿(scriptlet) <%...%> : 자바 로직 코드를 작성하는데 사용한다.
표현문(expression) <%=...%> : 변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력하는 데 사용한다.

스크립틀릿 태그
-자바 코드로 이루어진 로직 부분을 표현
-out 객체를 사용하지 않고도 쉽게 HTML 응답을 만들어냄
<% 자바 코드;%> 각 행이 세미콜론으로 끝나야함

선언문 태그와 스크립틀릿 태그의 차이점
선언문은 변수뿐만 아니라 메소드를 선언할 수 있지만 스크립틀릿 태그는 메소드 없이 변수만을 선언할 수 있다.
또, 선언문 태그는 서브릿 프로그램으로 변환될 때 _jspService()메소드 외부에 배치되지만 스크립틀릿 태그는 메소드 내부에 배치된다.

표현문 태그
-웹 브라우저에 출력할 부분을 표현
-표현문 태그에 숫자, 문자, 불린(Boolean) 등의 기본 데이터 타입과 자바 객체 타입도 사용 가능
<%= 자바 코드 %> 각행을 세미콜론으로 종료할 수 없음

선언문 태그 사용법
-선언문 태그에 선언된 변수와 메소드는 JSP 페이지 임의의 위치에서 선언할 수 있으며, 스크립틀릿 태그보다 나중에 선언해도 스크립틀릿 태그에서 사용할 수 있다.
-선언문 태그로 선언된 변수는 전역변수로 사용되고, 선언문 태그로 선언된 메소드는 전역변수처럼 전역 메소드로 사용된다.

스크립틀릿 태그 사용법
-스크립틀릿 태그는 out 객체를 사용하지 않고도 쉽게 HTML 응답을 만들어낼 수 있다.
-가장 일반적으로 사용되며 변수 또는 메소드 선언, 유효식 등 다수를 포함할 수 있다. 모든 텍스트, HTML 태그 또는 JSP 요소는 스크립틀릿 태그 외부에 있어야 한다.

표현문 태그 사용법
-표현문 태그를 이용하여 선언문 태그 또는 스크립틀릿 태그에서 선언된 변수나 메소드의 반환 값을 외부로 출력할 수 있다.
-표현문 태그는 스크립틀릿 태그에서 사용할 수 없으므로 이 경우에는 out.print() 메소드를 사용해야 한다. 표현문 태그에 숫자, 문자, 불 등의 기본 데이터 타입과 자바 객체 타입도 사용 가능하다. 그리고 표현문 태그에 작성된 모든 자바 코드의 값은 문자열로 변환되어 웹 브라우저에 출력된다.

'JSP' 카테고리의 다른 글

example) script tag  (0) 2023.06.26
jsp tag  (0) 2023.06.26
서블릿 옛날 방식  (0) 2023.06.23
빈즈처럼 만들어서 CURD 한번에 구현하기  (0) 2023.06.23
Connection 객체를 이용한 CRUD  (0) 2023.06.23