병갈이 블록

두가지의 include 본문

IT(Old)/JSP 공부 기록

두가지의 include

woojang 2017. 6. 20. 19:47

두가지의 include.

1. 액션태그 : <jsp:include>

2. 디렉티브 : <%@ include %>


공통점.

- 외부 jsp파일 코드를 현재 jsp파일 코드 include한 위치에 포함시킨다.

다른점.

 비교

<jsp:include> 

include 디렉티브 

 처리 시점

액션태그 호출 시 

현재 페이지를 java소스로 변활 할 때 

 기능

 별도의 파일로 요청처리 흐름을 이동.

 외부 파일을 현재 파일에 삽입.

데이터 전달 

request 기본객체, <jsp:param>

 페이지 내 변수.(어차피 삽입되기에 사용가능)

용도 

주로 화면의 레이아웃 일부분을 모듈화 할때. 

다수의 JSP파일에서 공통으로 사용되는 변수 지정.

간단히 삽입되는 문장. 

 URL 속성

page  file


1. <jsp:include>

- 액션태그 속성으로 page, flush를 가짐. 

(page : 이동할 페이지 , flush : 플러시 유무. 플러시된 후 액션태그 호출시 액션태그 동작에 문제가 생긴다. 기본값은 false)

- 하위 태그로 <jsp:param name="이름" value="값"/>로 삽입하여 불러올 페이지에 파라미터 전달. 이 파라미터는 불러온 페이지에서만 유효한 값.

<jsp:param>은 현재페이지의 데이터를 이동시킬 페이지에 전달해야 하는 경우 사용된다.

(다시 현재페이지로 넘어오면 사라짐. 엄밀히 말하면 현재페이지에서 이동페이지로 넘겨준 데이터. 값 직접 입력 및 표현식 가능)

단, 전달될 파라미터 값의 인코딩 설정은 현재페이지에 request.setCharacterEncoding(String type)함수로 한다.

- 여러 jsp페이지에 공통으로 들어가는 영역이 존재한다면 <jsp:include>를 사용해서 코드 간결하게 하고 유지보수를 쉽게 한다.

2. include 디렉티브

- 불러올 파일경로를 입력하는 속성으로 'file'을 사용. 

ex. <%@ include file="경로" %>

- 코드가 포함되어 java코드로 변환됨으로 다른 페이지임에도 변수가 공유된다.

so, 많은 jsp페이지에서 사용될 동일한 하나의 변수가 있다면(필요하다면) include시킬 jsp페이지를 별도로 만들어 그곳에 변수를 만든다.

변수를 사용할 페이지는 위에서 만든 페이지를 include 디렉티브를 사용하여 include한다.

- 자동으로 include시키기.(코드 자동포함)

web.xml 파일에 <jsp-config>태그의 자식태그로 <jsp-preperty-group>태그를 삽입.

<jsp-property-group>의 자식태그로 <url-pattern>, <include-prelude>, <include-coda>를 삽입한다.

- <url-pattern> : 코드를 삽일할 파일의 조건. (ex. /view/*  => view폴더에 있는 모든 jsp파일)

- <include-prelude> : 처음에 포함될 코드가 있는 jsp파일 위치.

- <include-coda>  : 마지막에 포함될 코드가 있는 jsp파일 위치.

<jsp-property-group>단위로 중복사용 가능하다. 순차적으로 삽입된다.

::예제.

<jsp-config>

<jsp-property-group>

<url-pattern>/view/*</url-pattern>

<include-prelude>prepage.jsp</include-prelude>

<include-coda>codapage.jsp</include-coda>

</jsp-property-group>

</jsp-config>


'IT(Old) > JSP 공부 기록' 카테고리의 다른 글

JavaBeans  (0) 2017.06.21
<jsp:forward>  (0) 2017.06.20
에러 페이지 처리.  (0) 2017.06.20
디렉티브  (0) 2017.06.20
기본 객체.  (0) 2017.06.19
Comments