λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

λͺ©λ‘μ΄ μ—†μŠ΅λ‹ˆλ‹€.

[JSP] include μ•‘μ…˜νƒœκ·Έμ™€ λ””λ ‰ν‹°λΈŒ 차이

πŸ—£ Language/JSP



    include μ•‘μ…˜ νƒœκ·Έμ™€ λ””λ ‰ν‹°λΈŒ 차이


    ν˜•νƒœ


    <jsp:include page="URL" flush="true/false">


    <%@ page include file="URL" %>


    이 λ‘˜μ˜ μ°¨μ΄λŠ” μ»΄νŒŒμΌλ˜λŠ” μ‹œμ ? μ‹€μ§ˆμ μœΌλ‘œ μ‹€ν–‰λ˜λŠ” μ‹œμ ?μΈλ°μš”. μ•‘μ…˜νƒœκ·Έμ˜ κ²½μš°λŠ” 흐름이 ν•΄λ‹Ή URL의 νŽ˜μ΄μ§€λ‘œ κ°€μ„œ κ±°κΈ°μ„œ 컴파일 및 싀행이 되고 κ·Έ 좜λ ₯ κ²°κ³Όκ°€ 버퍼에 μŒ“μ΄λŠ” λ°©μ‹μ΄μ–΄μ„œ μ•‘μ…˜νƒœκ·Έλ₯Ό μ‚½μž…ν•œ λΌμΈμ—λŠ” κ·Έ νŽ˜μ΄μ§€μ˜ 좜λ ₯만이 μ‚½μž…λ˜κ³  λ””λ ‰ν‹°λΈŒλ‘œ includeλ₯Ό ν•˜λŠ” κ²½μš°λŠ” ν•΄λ‹Ή νŽ˜μ΄μ§€μ˜ μ½”λ“œκ°€ μ‚½μž…λ˜λŠ” 방식이닀.


    일반적으둜 μ•‘μ…˜νƒœκ·Έλ‘œ νŽ˜μ΄μ§€λ₯Ό λ‚˜λˆ”μœΌλ‘œ λͺ¨λ“ˆν™”λ₯Ό ν•œλ‹€κ³  ν•˜λŠ”λ° μ΄λŠ” 말이 λ˜μ§€ μ•ŠλŠ”λ‹€. μ™œλƒν•˜λ©΄ μ•‘μ…˜νƒœκ·Έμ˜ κ²½μš°λŠ” κΈ°λŠ₯을 λ‚˜λˆŒ 수 μ—†λ‹€. μ½”λ“œλ₯Ό μ‚½μž…ν•˜λŠ” 방식이 μ•„λ‹ˆλΌ κ·Έ νŽ˜μ΄μ§€μ˜ 좜λ ₯ κ²°κ³Όλ§Œμ„ μ‚½μž…ν•˜λŠ” 것이기 λ•Œλ¬Έμ— κΈ°λŠ₯μ μœΌλ‘œλŠ” μ‚½μž…λ˜λŠ” νŽ˜μ΄μ§€μ™€ μ—°λ™ν•˜μ§€ λͺ»ν•œλ‹€. κ·Έλž˜μ„œ 일반적으둜 μ‚¬μš©λ˜λŠ” page include λ””λ ‰ν‹°λΈŒλ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ κ°€ κΈ°λŠ₯도 같이 μ—°λ™ν•˜μ—¬ λͺ¨λ“ˆν™”ν•  수 있기 λ•Œλ¬Έμ΄λ‹€.


    κ·Έλž˜μ„œ 보톡 μ“°μ΄λŠ” 경우λ₯Ό μ‚΄νŽ΄λ³΄λ©΄ μ•‘μ…˜νƒœκ·Έλ‘œ includeλ₯Ό ν•˜λŠ” κ²½μš°λŠ” 웹을 λ””μžμΈν•˜λŠ” 퍼블리싱을 ν•  λ•Œ μ€‘λ³΅λ˜λŠ” λΆ€λΆ„(예λ₯Ό λ“€μ–΄ νŽ˜μ΄μ§€λ§ˆλ‹€ Topκ³Ό Bottom이 μžˆλŠ” ꡬ쑰)을 μ•‘μ…˜νƒœκ·Έλ‘œ λΆˆλŸ¬μ™€μ„œ μœ μ§€λ³΄μˆ˜μ— μœ λ¦¬ν•˜λ„λ‘ ν•œλ‹€.


    λ””λ ‰ν‹°λΈŒλ‘œ include ν•˜λŠ” κ²½μš°λŠ” λ™μ μœΌλ‘œ μ›Ή νŽ˜μ΄μ§€λ₯Ό κ΅¬μ„±ν•˜λŠ”λ° μ€‘λ³΅λ˜λŠ” 뢀뢄을 λͺ¨λ“ˆν™”ν•˜μ—¬ 뢙일 λ•Œ μ‚¬μš©ν•œλ‹€.



    λ§€κ°œλ³€μˆ˜λ₯Ό μ „λ‹¬ν•˜λŠ” 방법을 보면 μ•‘μ…˜νƒœκ·Έμ˜ κ²½μš°λŠ” <jsp:param name="name" value="value" /> ν•΄μ„œ ν‚€κ°’μ˜ ν˜•νƒœλ‘œ λ§€κ°œλ³€μˆ˜λ₯Ό λ„˜κΈ°λŠ” 방식이 μžˆλ‹€.

    ν•˜μ§€λ§Œ λ‘˜ λ‹€ HTTPν”„λ‘œν† μ½œμ˜ GET λ°©μ‹μœΌλ‘œ URL의 뒷뢀뢄에 λΆ™μ—¬μ„œ 보내도 상관은 μ—†λ‹€. 단지 μ½”λ“œκ°€ λ”λŸ¬μ›Œμ§ˆ 뿐이닀.



    μ΄λ ‡κ²Œ 같은 νŽ˜μ΄μ§€λ₯Ό λͺ¨λ“ˆν™”ν•΄μ„œ μ μš©ν•˜λŠ”λ° μ‚¬μ΄μ¦ˆκ°€ 큰 μ‚¬μ΄νŠΈλ“€μ€ νŽ˜μ΄μ§€κ°€ μš°λ¦¬κ°€ μƒκ°ν•˜λŠ” 것 μ΄μƒμœΌλ‘œ μ–΄λ§ˆμ–΄λ§ˆν•˜κ²Œ λ§Žλ‹€. μ΄λ ‡κ²Œ λ§Žμ€ νŽ˜μ΄μ§€λ“€ μ•ˆμ— ν•˜λ‚˜ ν•˜λ‚˜ λ„£κΈ°κ°€ νž˜λ“€κ²Œ λœλ‹€. 이런 경우 μ–΄λ–€ 폴더 μ•ˆμ˜ νŽ˜μ΄μ§€λ“€μ€ μ „λΆ€ Topκ³Ό Bottom ν˜Ήμ€ μ€‘λ³΅λ˜λŠ” νŽ˜μ΄μ§€ ꡬ성을 μ μš©ν•˜κ³  싢을 λ•Œ 방법이 μžˆλ‹€.


    λ°”λ‘œ WEB-INF 폴더 μ•ˆμ— μžˆλŠ” web.xml νŒŒμΌμ— λ‹€μŒκ³Ό 같이 μ½”λ“œλ₯Ό λ„£μ–΄μ£Όλ©΄ λœλ‹€.


    <jsp-config>

    <jsp-property-group>

    <url-pattern>*.jsp</url-pattern>

    <include-prelude>경둜/*.jspf</include-prelude>

    <include-coda>경둜/*.jspf</include-coda>

    <jsp-property-group>

    </jsp-config>


    경둜 λ‹€μŒμ— λ‚˜μ˜€λŠ” 파일의 ν™•μž₯자인 JSPF(Java Server Pages Fragment)λŠ” μ€‘λ³΅λ˜λŠ” jspνŒŒμΌμ„ includeν•˜λŠ”λ° μ‚½μž…λ˜λŠ” νŽ˜μ΄μ§€λŠ” μ™„λ²½ν•œ jsp파일이 아닐 수 있고 ν˜Ήμ—¬λ‚˜ μ‚¬μš©μžκ°€ 이 νŽ˜μ΄μ§€μ— μ ‘κ·Όν•˜λ©΄ μ—λŸ¬κ°€ λ°œμƒν•  μˆ˜ 있기 λ•Œλ¬Έμ— jspfλΌλŠ” ν™•μž₯μžκ°€ λ§Œλ“€μ–΄μ‘Œλ‹€. λ¬Όλ‘  jspfλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  jspλ₯Ό μ‚¬μš©ν•΄λ„ μƒκ΄€μ—†λ‹€. 


    preludeλŠ”νƒœκ·ΈλŠ” jsp파일의 μ•žλΆ€λΆ„μ— μ‚½μž…μ΄ 되고 codaνƒœκ·ΈλŠ” 뒷뢀뢄에 μ‚½μž…μ΄ λœλ‹€. λ˜ν•œ <jsp-property-group>νƒœκ·Έκ°€ 2번 이상 λ‚˜μ˜€λŠ” κ²½μš°λŠ” μœ„μ—μ„œλΆ€ν„° μ•„λž˜λ‘œ μˆœμ°¨μ μœΌλ‘œ μˆ˜ν–‰μ΄ λœλ‹€.