JSP ACTION TAG

jsbak·2020년 12월 12일
0

JSP ACTION TAG

Custom Tag

Custom Tag 사용방법 ex) <prefix:tagName attributes >
1. custom tag library를 build Path에 추가
2. taglib 지시자로 library를 Loading(prefix 결정)
3. <prefix:tagName attributes>

Action Tag

  • jsp 스펠에 따라 기본 제공되는 커스텀 태그, prefix가 jsp

  • 어떤 동작을 지시하는 태그

  • 접두어로 네임스페이스를 분리하여 태그 형식의 자바 코드를 완성할 수 있는 일종의 서버사이드 태그

  • jsp 내에서 스크립틀릿 기호 없이 자바 객체를 사용할 수 있다.

  • 다양한 커스텀 태그들의 등장과 Model2 아키 텍처의 적용으로 점점 더 그 쓰임새가 줄어 들고 있는 추세

페이지 모듈화와 요청 흐름 제어

웹 사이트를 구성하는 페이지 들은 동일한 상단, 좌측 메뉴 그리고 하나의 푸터를 갖는다.
이런 공통 구성요소를 위한 코드를 모든 JSP페이지마다 작성한다면 코드 중복이 발생하게 된다.
이를 방지 하기 위해서 <jsp:include>액션 태그와 jsp 디렉티브 방식을 이용하여 모듈화한다.

<jsp:include>액션 태그를 이용한 페이지 모듈화


1. main.jsp가 웹 브라우저의 요청을 받는다.
2. [출력내용 A] 를 출력 버퍼에 저장한다.
3. <jsp:inclue>가 실행되면 요청 흐름을 sub.jsp로 이동한다.
4. [출력내용 B]를 출력 버퍼에 저장한다.
5. sub.jsp의 실행이 끝나면 요청 흐름이 다시 main.jsp의<jsp:include>로 돌아온다.
6. <jsp:include> 이후 부분인 [출력 내용 C]를 출력 버퍼에 저장한다.
7. 출력 버퍼의 내용을 응답 데이터로 전송한다.

  • <jsp:include> 액션 태그는 지정한 페이지를 태그가 위한 부분에 포함 시킨다.
  • 포함할 JSP 페이지의 실행결과를 현재 위치에 포함
  • <jsp:include page="포함할 페이지" flush="true">

<jsp:include> 액션 태그의 두 속성은 다음과 같다.

  • page : 포함할 JSP 페이지의 경로를 지정한다.
  • flush : 지정한 JSP 페이지를 실행하기 전에 출력 버퍼를 플러시 할지 여부를 지정한다.
    true이면 출력 버퍼를 플러시하고, false이면 플러시하지 않는다. default는 false이다.

<jsp:include> 중복 영역의 처리

  • 공통되는 부분의 수정에 따른 문제를 최소화할 수 있다. 즉, 페이지의 공통되는 부분을 별도의 JSP 페이지로 작성한 후 태그를 사용하여 지정한 위치에 포함해주는 방법을 사용하여 중복 영역을 처리한다.

include 디렉티브를 이용한 중복된 코드 삽입

  • <jsp:include> 와 마찬가지로 페이지를 포함해주는 기능을 제공하지만 include 디렉티브는 포함 방식에서 차이를 보인다.

  • include 디렉티브는 다른 파일의 내용을 현재 위치에 삽입한 후에 JSP 파일을 자바 파일로 변환하고 컴파일하는 방식이다.

  • <%@ include file="포함할 파일"%>

  • 코드 차원에서 삽입이 이루어지기 때문에 사입되는 파일에서 선안한 변수를 삽입하는 JSP에서 사용할 수 있다.

  • 모든 JSP 페이지에서 사용되는 변수 지정 및 저작권 표시와 같은 간단하면서도 모든 페이지에서 중복되는 문장 등에 활용할 수 있다.

  • include 디렉티브에 포함할 파일의 경우 일반 JSP와 구분하기 위해서 확장자로 .jspf 를 사용한다. jspf(JSP Fragment)는 소스코드조각을 의미한다.

include 디렉티브의 처리 방식과 사용방법

include 디렉티브의 활용

  • <jsp:include> 액션 태그는 레이아웃의 한 구성요소를 모듈화하기 위해 사용되는 반면에 include 디렉티브는 다음과 같이 두 가지 형태로 주로 사용된다.
  • 모든 JSP 페이지에서 사용되는 변수 지정
  • 저작권 표시와 같이 간단하게 모든 페이지에서 중복되는 문장
  • 기본 객체로 부터 특정 값을 읽어와 변수에 저장 후 그 변수를 사용하는 JSP 페이지가 많을 경우, 변수를 지정하는 부분을 별도의 파일에 작성한 후 그 파일을 include 디렉티브로 포함시키는 것이 더 좋은 방법이다.

다음과 같이 변수를 선언하는 파일을 만들어 준다.

ex) <commonVariable.jspf>
<%@ page contentType = "text/html; charset = euc-kr" %>
String memberID = (String)session.getAttribute("MEMBERID");
File tempFolder = (File)application.getAttribute("TEMPFOLDER");

만들어준 파일을 include 디렉티브로 포함해 준다.

<%@ include file="commonVariable.jspf" %>

<jsp:include>와 include 디렉티브 비교

기준동적 include정적 include
시점Rutime소스 코드 컴파일 단계
대상'실행 결과'를 출력 버퍼에 include소스 코드(code fragment) 자체를 include
목적특정 페이지가 중복되어 하나의 jsp 객체를 재활용하기 위해서 사용특정 변수나 메서드 즉 소스 자체가 중복되는 경우, 중복 코드 제거를 위해 사용
방식<jsp:include page="" /> or RequestDaispatcher.include()<%@ include file="" %> (Directive) or web.xml의 jsp-config 엘리먼트를 사용한 코드 조각 길광 include

https://docs.oracle.com/javaee/5/tutorial/doc/bnahe.html#bnahf

profile
끄적끄적 쓰는곳

0개의 댓글