Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

백엔드 개발 공부 일지

JAV WEB - Servelt & JSP (2) 본문

Java Spring

JAV WEB - Servelt & JSP (2)

JungCat 2022. 12. 30. 11:54

● JSP 프로그래밍

JSP(JavaServer Pages)는 웹페이지의 컨텐트를 구현하는 HTML 파일 내에 서버상에서 동적으로 처리하려는 부분을 적당한 JSP 태그와 Java 코드를 삽입하여 구현하는 기술이다.

(브라우저의 동적인 처리는 JavaScript만으로도 수행이 가능하다.)

 

JSTL 등의 JSP 태그 라이브러리를 사용하는 경우에는 Java 코딩 없이 태그만으로 구현하는 것도 가능하므로 개발생산성을 높일 수 있다.

 

JSB 구현시 알고 있어야 하는 내용은 다음과 같다.

- Servlet

- JSP의 스크립트 태그

- JSP의 액션 태그

- JSP의 내장 객체

 

- JSP의 처리 구조

웹 클라이언트에서 JSP의 실행을 요청하면 서버의 JSP 컨테이너(컨버터)에 의해 Servlet 소스코드로 변환되고 컴파일 된 후 실행 가능한 Servlet 클래스가 된다. 이 때 부터는 Servlet 컨테이너에 의해 객체 생성되어 실행되며 실행 흐름과 특성은 Servlet과 동일하다. JSP가 Servlet 소스코드로 변환되는 것은 JSP가 작성 또는 수정된 후 최초 요청시에만 처리된다.

JSP의 Servlet 소스코드 변환 및 컴파일 과정
JSP의 상세 처리과정

 

JSP 태그의 종류

- 지시자 태그

JSP 를 Servlet으로 변환할 때 지시하고자 하는 내용을 정의하는 태그이다. 지시할 사항에 따라서 다양한 지시자 태그를 지원한다.

 

1) page 지시자 <%@page {attr = value ..} %>

2) include 지시자 <%@include {attr = value ..} %>

3) taglib 지시자 <%@taglib {attr = value ..} %>

4) tag 지시자 <%@tag {attr = value ..} %>

5) variable 지시자 <%@page {variable = value ..} %>

6) attribute 지시자 <%@attribute {attr = value ..} %>

 

1) page 지시자 태그

page 지시자는 컨테이너가 참조하는 다양한 정보들 중에서 JSP  페이지에 종속적인 설정 정보들을 알려주기 위한 수단으로 사용된다. page 지시자를 사용하면 해당 JSP 페이지가 어떤 문서(text, xml등)를 생성하는지, 어떤 Java 클래스를 사용하는지, 세션에 참여하는지, 출력 버퍼에 존재 여부와 같은 JSP페이지를 실행하는데 기본이 되는 정보들을 지정해 줄 수 있다.

 

2) include 지시자 태그

하나의 JSP 페이지는 여러개의 JSP 파일로 구성될 수 있다. 일정한 Java 코드나 정적인 데이터(HTML, Text등)가 여러 페이지에 반복된다면 반복되는 부분을 다른 파일로 저장하고 필요한 JSP 페이지에서 불러 쓰는 것이 훨씬 효과적인 것이다.

- 스크립팅 태그

JSP 지시자는 JSP 컨테니어가 JSP 소스를 Servlet으로 변환할 때 어떻게 페이지를 처리할 것인지에 영향을 끼치는 반면, 스크립팅 태그들은 JSP 페이지에 직접 Java 코드를 끼워 넣을 수 있게 한다. JSP 의 스크립팅 태그는 다음의 세가지 유형이다.

 

1) 선언문 태그 : <%!        %>

     JSP 페이지 내부에서 사용할 멤버 변수나 메서드를 선언한다.

2) 표현식 태그 : <%! =     %>

     동적 데이터를 응답 정보에 추가하기 위한 식을 정의한다.

3) 스크립트릿 태그 : <%        %>

    Java API를 이용하거나 기타 Java 를 이용한 소스코드를 작성한다.

 

- 액션 태그

정해진 기능을 지원하는 태그로서 JSP 에서는 다음의 6개의 액션 태그가 사용된다.

 

<jsp:inlcude>

   JSP 페이지의 수행 결과 내에 다른 자원의 내용 또는 수행 결과를 포함한다.

<jsp:forward>

요청된 JSP 대신 다른 자원의 내용 또는 수행결과를 대신 클라이언트로 응답한다.

<jsp:plugin>

   JSP의 수행 결과 안에 Applet을 수행시키고 결과를 포함한다.

<jsp:useBean>

   주어진 JavaBeans 클래스의 객체를 생성하거나 이미 생성된 객체를 추출한다.

<jsp:getProperty>

   JavaBeans 객체의 프로퍼티 값추출한다.

<jsp:setProperty>

 JavaBeans 객체의 프로퍼티에 값설정한다.

 

<jsp:forward> 예시

- JSP의 내장 객체

JSP는 표현식(expression)태그스크립트릿(scriptlets)태그에서 스크립트 코드를 심플하게 작성할 수 있게 내장 객체라는 것을 지원한다. 내장객체를 선언하고 초기화 하는 것JSP 컨테이너가 JSP 소스를 Servlet 소스코드로 변환하는 과정에서 자동적으로 추가한다.

 

JSP의 스크립트 태그에서는 Java에서 제공하는 표준 API를 이용해서 객체를 생성하거나 활용할 수 있다. 또한 개발자가 만든 클래스도 JSP 객체 생성하여 사용할 수 있다. JSP에서 이런 표준 API 및 클래스를 활용하는 방법은, 지시자를 사용해서 사용할 패키지를 import하고 해당 객체를 생성 혹은 참조하는 프로그램을 작성하는 것이다. JSP에서 사용되는 객체의 클래스는 반드시 패키지 되어야한다.

내장 객체는 내부적으로 정의된 객체이므로 이런 과정을 필요로 하지 않으며 사용하고자 하는 객체의 내장 객체 변수만 알고 있으면 된다.

 

- EL (Expression Language)

특정 스코프 영역에 보관되어 있는 객체를 추출하여 이 객체의 값 또는 속성 값을 추출하여 표현하고 싶은 경우 사용된다.

적절한 Java 코드와 함께 표현식 태그를 사용해도 되지만 JSP가 추가로 지원하는 Expression Language라는 구문으로 좀 더 간단하게 구현하는 것이 가능하다.

 

EL은 $와 블록({ })으로 구현하는 것으로 표현하는 것과 관련된 연산자 EL만의 내장 객체를 사용할 수 있다. Query 문자열을 추출하여 표현하는 경우도 다음과 같이 스크립팅 태그를 사용하는 것보다 간단하게 구현 가능하다.

EL을 활용한 구현 예시

 

EL의 내장 객체
Expression Language 사용법

- Filter

Filter란 웹 클라이언트에서 요청한 웹 자원들(Servlet 또는 JSP)이 수행되기 전 또는 후에 수행되는 객체로서 request 또는 response에 영향을 주거나 또는 특정 처리를할 수 있다. Filter의 응용 예로 인증, 로깅, 이미지 변환, 데이터 압축, 암호화, 스트림토근화, XML 변환 등이있다.

 

웹 자원이 순서대로 하나 또는 두 개 이상의 Filter들의 chain에 의해 필터링 되도록 설정할 수 있다.

 

Filter 구현 시에는 javax.servlet.Filter 라는 인터페이스를 상속하여 init(), doFilter() destroy()를 오버라이딩 한다.

일단 개념만 알아두자.. ㅎㅎ

'Java Spring' 카테고리의 다른 글

JAVA Spring - JPA  (0) 2023.02.03
JAVA Spring - MyBatis  (0) 2023.01.19
Java Spring - MVC  (0) 2023.01.16
Java Spring - Spring IOC  (0) 2023.01.12
JAV WEB - Servelt & JSP (1)  (0) 2022.12.28
Comments