안녕하세요,
오늘도 어김없이 코딩 공부하러 온 jju_developer입니다.
오늘은 정말 중요한 자바 서버 페이지에 대한 기초 설명에 대한 정리본을 공유드립니다.
JSP의 사용 추세는 점점 줄어들고 있지만,
JSP를 이해해야 나중에 Spring의 이해가 되기 때문에 간단하게 기초만 알아보도록 하겠습니다.
(요즘은 JSP 대신에 typescript라는 것을 사용하곤 합니다.)
JSP (JavaServer Pages) 란?
JSP 란 JavaServer Pages의 약자이며,
HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구입니다.
자바 서버 페이지는 HTML 내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여
웹 브라우저에 돌려주는 서버 사이드 스크립트 언어입니다.
자바 서버 페이지는 실행 시에는 자바 서블릿으로 변환된 후 실행되므로 서블릿과 거의 유사하다고 볼 수 있다.
[정리]
자바 서블릿(Java Servlet)
서블릿이란 웹페이지를 동적으로 생성하기 위해 서버 측 프로그램을 말합니다.
이는 자바 언어를 기반으로 만들지며,
웹 어플리케이션 서버 ( Web Application Sever ) 위에서 컴파일되고 동작합니다.
※ JSP 와 서블릿은 차이점은?
JSP와 서블릿의 차이점은 결과적으로 하는 일은 동일하지만,
JSP는 HTML 내부에 JAVA 소스코드가 들어감으로 인해 HTML 코드를 작성하기 간편하다는 장점이 있으며,
서블릿은 자바코드 내에 HTML 코드가 있어서 읽고 쓰기가 굉장히 불편하기 때문에 작업의 효율성이 떨어집니다.
JSP 기능을 3단계로 보겠습니다.
1단계:
JSP로 Thred 기능을 써서 클라이언트가 요구하는 메모리를 최초 한 번만 로드하여서 다른 사용자가 같은 메모리를 원한다면 Thred가 재사용되어 Response(응답) 해줍니다
2단계:
JSP를 통해 정적인 HTML과 동적으로 생성된 contents(HTTP 요청 파라미터)를 혼합하여 사용할 수 있습니다.
즉, 사용자가 입력한 contents에 맞게 동적인 웹 페이지를 생성합니다.
3단계:
JSP 가 실행되면 *자바 서블릿으로 변환되며 웹 애플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답합니다.
*자바 서블릿 : 웹 프로그래밍에서 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그래밍 기술
JSP에 필요한 프로그램은?
• JSP를 이용해서 만든 프로그램을 실행하려면 톰캣(Tomcat)과 서버 프로그램이 필요하다.
• 이 서버는 웹을 위한 연결, 프로그래밍 언어, 데이터베이스 연동과 같이 애플리케이션을
구현하는데 필요한 기능을 제공하고 있다.
• 이런 이유로 이들 서버 프로그램을 WAS(Web Application Server)라 부른다.
▼▼▼WAS란?▼▼▼
제이쿼리(jQuery) 비동기 방식 연동, Apache Tomcat설명 및 Ajax 중요 메서드 설명
안녕하세요 JJU_DEVELOPER입니다. 이번 시간에는 제이쿼리 비동기 방식 연동에 대해 알아보겠습니다. 제이쿼리에서 많이 쓰이는 부분으로 잘 알아보도록 하겠습니다~! 우리는 자바라는 랭귀지를 이
jju240.tistory.com
위 링크는 WAS에 대한 기초 설명이 있습니다.
JSP 파일 구조
jsp 파일 확장명으로 저장된 파일에는 다음 섹션이 포함되어 있습니다.
+HTML 문서를 생성하는 기본 코드 구조
- 디렉티브 구문
- 스크립트 요소
- 기본 객체(implicit object)
- 표현 언어(Expression language)
- JSTL (JSP Standard Tag Library) => 표준 액션 태그와 태그 라이브러리
여기서 각각의 코드 구조에 대해서 설명드리겠습니다.
우선 디렉티브 구문에 대해서 설명드리겠습니다.
디렉티브의 종류는 3종류가 있습니다.
디렉티브 태그 | 형식 | 설명 |
page | <%@page %> | JSP 페이지에 대한 정보(문서의 타입, 출력 버퍼의 크기, 에러 페이지 등)를 설정 |
include | <%@include %> | JSP 페이지의 특정 영역에 다른 문서를 포함 |
taglib | <%@taglib %> | JSP 페이지에서 사용할 태그 라이브러리 설정 |
1. 디렉티브 태그 - page
- JSP 페이지의 어디에서든 선언할 수 있지만 일반적으로 JSP 페이지의 최상단에 선언하는 것을 권장
- 현재 JSP 페이지에 대한 정보를 설정하는 태그
- page 디렉티브 태그에도 여러 가지 속성이 있습니다.
속성명 | 속성의 기본값 | 사용법 | 속성 설명 |
info | info="설명.." | 페이지를 설명해 주는 문자열을 지정하는 속성 | |
language | "java" | language="java" | JSP 페이지의 스크립트 요소에서 사용할 언어를 지정하는 속성 |
contentType | "text/html;charset=ISO-8859-1" | contentType="text/html;charset=utf-8" | JSP 페이지가 생성할 문서의 타입을 지정하는 속성 |
extends | extends="system.MasterClass" | 자신이 상속 받을 클래스를 지정할 때 사용하는 속성 | |
import | import="java.util.Vector" import="java.util.*" |
다른 패키지에 있는 클래스를 가져다 쓸 때 사용하는 속성 | |
session | "true" | session="true" | HttpSession을 사용할지 여부를 지정하는 속성 |
buffer | "8kb" | buffer="10kb" | buffer="none" JSP 페이지의 출력 버퍼의 크기를 지정하는 속성 |
autoFlush | "true" | autoFlush="false" | 출력 버퍼가 다 찰 경우에 저장되어 있는 내용의 처리를 설정 하는 속성 |
isThreadSafe | "true" | isThreadSafe="true" | 현 페이지에 다중쓰레드를 허용할지 여부를 설정하는 속성 |
errorPage | errorPage="error/fail.jsp" | 에러 발생 시 에러를 처리할 페이지를 지정하는 속성 | |
isErrorPage | "false" | isErrorPage="false" | 해당 페이지를 에러 페이지로 지정하는 속성 |
pageEncoding | "ISO-8859-1" | pageEncoding="UTF-8" | 해당 페이지의 문자 인코딩을 지정하는 속성 |
isELignored | JSP 버전 및 설정에 따라 다르다. | isELIgnored="true" | 표현 언어(EL)에 대한 지원 여부를 설정하는 속성 |
즉, 위에 표에서 빨간색 칠해 놓은 부분이 이제 JSP 파일을 생성 시,
맨 윗단에 이 페이지에 대한 정보를 적는 것입니다.
언어는 자바를 쓸 것이고, 문서의 타입은 HTML이며, 이 페이지의 문자는 UTF-8로 지정을 해주었습니다.
▼▼▼JSP 초기 설정하러 가기▼▼▼
[JSP] JSP(자바 서버 페이지) 초기 이클립스 세팅 상세 설명
안녕하세요 jju_developer입니다~! 혹시 이클립스를 방금 이클립스를 깔았고, JSP를 실행해보고 싶으신 분들은 해당 설명을 따라서 해보시면 됩니다. 1. 파일 탐색기에서 새로운 폴더를 만들고 내가
jju240.tistory.com
2. 스크립트 요소란 무엇일까요?
스크립트 요소의 목적은 자바 코드를 사용하기 위한 요소입니다.
(JSP에서 문서의 내용을 동적으로 생성하기 위해 사용)
<스크립트 요소 3가지>
- 표현식(Expression) : 값을 출력
- 스크립트릿(Scriptlet) : 자바 코드를 실행
- 선언부(Declaration) : 자바 메서드(함수)를 정의
3. 기본 객체(implicit object)란 무엇일까요?
객체를 JSP에서 별도 선언 없이 사용이 가능합니다.
<주요 기본 객체>
- request : 요청 정보를 구할 때 사용
- response : 응답과 관련된 설정(헤더, 쿠키 등) 시 사용
- out : 직접 응답을 출력할 때 사용
- session : 세션 관리에 사용
4. 표현 언어(Expression language)란 무엇일까요?
<%
int a = Integer.parseInt(request.getParameter("a"));
int b = Integer.parseInt(request.getParameter("b"));
%>
a * b = <%= a*b %>
자바 언어를 사용을 하면, <%= %>를 사용해서 써야 하는데 그렇게 되면 JSP 코드가 복잡해집니다.
위 코드를 표현 언어(Expression Language)를 사용하면 다음과 같이 간결하게 작성할 수 있다.
a * b = ${param.a * param.b}
그럼 위 다섯 줄을 한 줄로 표현할 수 있으니, 더욱 간결하죠~?
표현언어는 JSP의 구성요소 중 하나입니다.
마치 제이쿼리처럼 $ 표시를 하여 사용합니다.
즉, 표현언어는 JSP에서 Java 코드(스크립트 요소)를 쉽게 표기하기 위함입니다.
표준 액션 태그와 태그 라이브러리란 무엇일까요?
<jsp:include page="header.jsp" flush="true" />
태그처럼 보이지만 html에는 저런 태그는 없습니다.
하지만 위처럼 쓰는 방법은 JSP에서 정의한 태그입니다.
액션 태그는 특정한 페이지의 실행 결과를 현재 위치에 포함시킬 때 사용합니다.
즉, 특정 기능을 갖는 사용자 정의 표준 태그를 뜻합니다.
그럼 여기까지! 자바 서버 페이지(JavaServer Pages)에 대한 기초 설명을 마치겠습니다.
다음장에서는 JSP로 시작하는 웹 프로그래밍에 대해 설명하겠습니다.
오늘도 수고하셨습니다 ^^
참고자료:
1. https://www.samsungsds.com/kr/insights/java_jakarta.html
2. https://docs.fileformat.com/ko/programming/jsp/#html-%eb%b0%8f-jsp-%ec%bd%94%eb%93%9c
'주니어 기초 코딩공부 > JSP 기초' 카테고리의 다른 글
[JSP] JSP 태그의 개념 이해 (0) | 2023.01.23 |
---|---|
[JSP] 자바빈(JavaBean)이란? <jsp:setProperty> <jsp:getProperty> (2) | 2023.01.23 |
[JSP] 자바서버페이지의 기본 객체(내장객체) 설명 out, pageContext, application (0) | 2023.01.23 |
[JSP] 자바서버페이지의 response 기본 객체 (0) | 2023.01.20 |
[JSP] JSP(자바 서버 페이지) 초기 이클립스 세팅 상세 설명 (0) | 2023.01.17 |