JSPの概念
JSP(Java Server Pages)
Javaが提供するスクリプト言語(Server Side Script)に基づいて、動的Webページを作成し、Javaエンタープライズアプリケーションでユーザーインタフェース(UI)の分野を担当します.
JSPはサーバ環境におけるスクリプト言語としてJavaを使用し,クライアントの要求に単一スレッドでサービスする.従来のCGIとは異なり、リクエストがあるたびに(=オブジェクトが作成されるたびに)プロセスの共有メモリサービスを生成する原理があります.
長所
サーバ側負荷の軽減
JSP内部に表示されるコードのみを記述します.
直接作業する部分はjavabeanで構成されており、両者を分けることができます.
(ユーザが互いに影響を及ぼさずに修正し、JAVAの再利用性を向上させることができる.)
クライアント<--------------->サーバ
HTML, CSS, Javascript <-----------> JSP(JAVA)
ブラウザ(IE、CR、FFなど)<---->Webサーバ、oracle
リクエスト<-----------------------------------------------------------レスポンス(HTMLページ)
JSP実行構造
手順1.WebクライアントがWebサーバにWebプログラムを送信する(ページ要求)
手順2.WebサーバからWebクライアント要求をロードするJSPプログラム(ページ)
手順3.JSPページの変換を実行
※この過程で通常の『.java』に変換します.『→ Servlet』
手順4.サーブレットのコンパイルと実行(.javaに変換)
手順5.クライアントの実行結果として動的に生成されるHTMLドキュメントへの応答
手順6.Webクライアントが応答するHTMLドキュメント
ブラウザでWebページ形式で出力
·page
페이지에 대한 기본 정보 입력
(문서의 타입, 출력 버퍼의 크기, 에러 페이지 등)
현재 문서를 나타내는 객체
page 디렉티브는 JSP 페이지와 관련된 속성을 정의하고
이 속성들은 웹 컨테이너에 정보를 제공한다.
또한 한 페이지에 page 디렉티브는 여러 번 등장 할 수 있고
위치도 관계가 없다. 하지만 보통 페이지 상단에 기술한다.
```
주요 속성
- contentType : 생성할 문서 타입
- import : 사용할 자바 클래스 지정
- session : 세션 사용 여부 지정
- buffer : 출력 버퍼 크기 지정
- autoFlush : 출력 버퍼가 다 채워졌을 경우
자동으로 버퍼에 있는 데이터를 비우게 만들지의 여부 지정
- info : 페이지에 대한 설명
- errPage : 실행 도중 에러 발생 시 보여줄 페이지 지정
- pageEncoding : 페이지 자체의 캐릭터 인코딩 지정
·taglib
태그 라이브러리(tag library)
사용자가 만든 태그 모음(사용자가 직접 기능 설정)
·include
다른 문서를 포함하는 기능.
여러 JSP 페이지에서 공통적으로 포함하는 내용이 있을 때
이러한 내용을 매번 반복해서 입력하지 않고
별도의 파일에 저장해 두었다가 JSP 파일에 삽입하도록 하는 것 → 생산성 향상
include 디렉티브의 처리 과정은
정적으로 include 지시자를 사용한 JSP 페이지가 컴파일 되는 과정에서
include 되는 JSP 페이지 소스 내용을 그대로 포함해서 컴파일한다.
즉, 복사&붙여넣기 방식으로 두 개의 파일을 하나로 구성한 후
같이 변환되고 컴파일된다.
2. 스크립트 요소<% %>
- 스크립트 릿(Scriptlet)
JSP 문서 내에 JAVA 코드를 기술하는 부분이기 때문에
오로지 자바 코드만 올 수 있다.
스크립트 릿에 선언된 변수는 지역변수의 성격을 가지게 되며
자바에서 메소드 **내에 선언된 변수라고 할 수 있다**.
- 표현식(Expression)<%= %>
HTML 문서 결과값에 포함시키고자 할 때 사용.
(즉, 브라우저에 등장시킬 수 있는 영역)
- 선언부(Declaration)<%! %>
스크립트 릿이나 표현식에서 사용할 수 있는 함수 작성 시 사용.
스크립트 릿이나 표현식에서 사용할 수 있는 변수나 메소드를
정의하는 부분이기 때문에 선언부에서 선언된 변수는 서블릿으로 변환되는 과정에서 멤버 변수의 입장을 취하게 되며 전역 변수의 성격을 가진다.
또한, 『_jspInit()』, 『_jspDestory()』와 같은 생명주기 운영을 위해
메소드를 재정의할 수 있다.
Reference
この問題について(JSPの概念), 我々は、より多くの情報をここで見つけました https://velog.io/@chaeyun/JSP의-개념テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol