JSP ¹®¹ý
¼ºí¸´Àº µ¿ÀûÀÎ HTML ÆäÀÌÁö¸¦ ¸¸µé¾îÁÖ´Â ±â¼úÀÌÁö¸¸ ÀÚ¹Ù ÄÚµå¿Í HTML ÄÚµåÀÇ ºÐ¸®¿¡ ¾î·Á¿òÀÌ ÀÖ¾ú½À´Ï´Ù.
JSP´Â ¼ºí¸´ÀÇ °¡Áö°í ÀÖ´Â µðÀÚÀÎ,ÄÚµåÀÇ ºÐ¸®ÀÇ ¾î·Á¿òÀ» ¾î´ÀÁ¤µµ °³¼±Çß½À´Ï´Ù.
°£´ÜÇÑ JSP ¿¹Á¦ ÆÄÀÏ(hello.jsp)·Î JSP°¡ À¥»ó¿¡¼ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö ¼³¸íÇϰڽÀ´Ï´Ù.
(JSP ¹®¼ÀÇ È®ÀåÀÚ´Â ¹Ýµå½Ã .jsp À̾î¾ß ÇÕ´Ï´Ù.)
hello.jsp
<html>
<body>
<% out.println("Hello World!!"); %>
</body>
</html>
Ŭ¶óÀ̾ðÆ®(À¥ºê¶ó¿ìÀú)°¡ hello.jsp¸¦ ¿äû(¹æ¹®)Çϸé, À¥¼¹ö(¾ÆÆÄÄ¡)´Â hello.jsp À̶õ ÀÚ¿øÀÌ ÀÚ½ÅÀÌ Ã³¸®ÇÒ ¼ö ¾ø´Â jspÆÄÀÏÀÓÀ»
ÀνÄÇϰí JSP/¼ºí¸´ ÄÁÅ×À̳Ê(ÅèĹ)¿¡°Ô Á¦¾î±ÇÀ» ³Ñ±é´Ï´Ù.
JSP/¼ºí¸´ ÄÁÅ×À̳ʴ hello.jsp °¡ óÀ½À¸·Î ¿äûµÇ¾ú´Ù¸é hello.jsp À» ¼ºí¸´À¸·Î º¯È¯ÇÕ´Ï´Ù.
(º¯È¯µÈ ¼ºí¸´Àº ÅèĹÀÇ °æ¿ì {TOMCAT_HOME}/work/.. ¿¡¼ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
ROOT ¾ÖÇø®ÄÉÀ̼ÇÀÇ ·çÆ® µð·ºÅ丮¿¡ hello.jsp ÀÚ¿øÀÌ ÀÖ´Ù¸é,
{TOMCAT_HOME}/work/Catalina/localhost/_/org/apache/jsp/hello_jsp.java °ú °°ÀÌ ¼ºí¸´ÀÌ »ý¼ºµÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.)
º¯È¯µÈ ¼ºí¸´Àº ÄÄÆÄÀÏµÈ ÈÄ¿¡ »óÁÖ ¸Þ¸ð¸®¿¡ ·ÎµùµÈ ÈÄ¿¡¾ß ºñ·Î¼ ¿äûÇÑ Å¬¶óÀÌ¾ðÆ®¿¡°Ô ¼ºñ½º¸¦ ÇÏ°Ô µË´Ï´Ù.
ÀÌÈÄ ´Ù½Ã hello.jsp ¿äûÀÌ µé¾î¿À¸é JSP/¼ºí¸´ ÄÁÅ×À̳ʴ ÀÏ´Ü hello.jsp ÆÄÀÏÀÌ º¯°æµÇ¾ú´ÂÁö¸¦ üũÇÕ´Ï´Ù.
¼Ò½º°¡ º¯°æµÇÁö ¾Ê¾Ò´Ù¸é ´ÙÀ½À¸·Î °´Ã¼°¡ ÀÌ¹Ì ·ÎµùµÇ¾ú¾î ÀÖ´ÂÁö È®ÀÎÇÕ´Ï´Ù.
·ÎµùÀÌ µÇ¾ú´Ù¸é ·ÎµùµÈ °´Ã¼°¡ ¼ºñ½ºÇÏ°í ·ÎµùµÇÁö ¾Ê¾Ò´Ù¸é ¸Þ¸ð¸®¿¡ ·Îµù ÈÄ ¼ºñ½ºÇÕ´Ï´Ù.
¼Ò½º°¡ º¯°æµÇ¾ú´Ù¸é JSP/¼ºí¸´ ÄÁÅ×À̳ʴ hello.jsp ÆÄÀÏÀ» ´Ù½Ã ÄÄÆÄÀÏÇÏ¿© ¼ºí¸´À¸·Î º¯È¯ÇÕ´Ï´Ù.

ÀÌ·¸µí JSP´Â ¼ºí¸´ ±â¹ÝÀÇ ±â¼úÀÔ´Ï´Ù.
´ÙÀ½Àº JSP ¹®¹ýÀÔ´Ï´Ù.
¸ñÂ÷
1. Áö½Ã¾î(Directives) 1) page Áö½Ã¾î 2) include Áö½Ã¾î 3) taglib Áö½Ã¾î 2. ½ºÆ®¸³ÆÃ(Scripting) 1) ¼±¾ð(Declarations) 2) Ç¥Çö½Ä(Expressions) 3) ½ºÅ©¸³Æ®·¿(Scriptlets) 3. ¾×¼Ç(Actions) 1) jsp:useBean 2) jsp:setProperty 3) jsp:getProperty 4) jsp:param 5) jsp:include 6) jsp:forward 7) jsp:plugin 4. ³»Àç °´Ã¼(Implicit Objects) 1) out 2) request 3) response 4) pageContext 5) session 6) application 7) config 8) page 9) exception
1. Áö½Ã¾î
Áö½Ã¾î(Directives)´Â JSPÆäÀÌÁöÀÇ Àü¹ÝÀûÀÎ Á¤º¸¸¦ ¼ºí¸´/JSP ¿£Áø¿¡°Ô Á¦°øÇÏ´Â ¿ªÈ°À» ÇÕ´Ï´Ù.
JSP ½ºÆå¿¡ ÀÇÇØ ÇöÀç¿¡ °¡´ÉÇÑ Áö½Ã¾î´Â page, include, taglib ÀÔ´Ï´Ù.
- page Directive
- include Directive
- taglib Directive
©ç page Áö½Ã¾î
¢Æ ¿ë¹ý : <%@ page {attribute = "value"} %>
| attribute = "value" | ¼³¸í |
|---|---|
| language = "scriptLanguage" | ÆäÀÌÁö¸¦ ÄÄÆÄÀÏÇÒ ¼¹öÃø ¾ð¾î°¡ ¹«¾ùÀÎÁö ±â¼ú(´ëºÎºÐ java) |
| import = "importList" | ÆäÀÌÁö°¡ import ÇÏ´Â ÀÚ¹ÙÆÑŰÁö ¸®½ºÆ® ±â¼ú (,·Î ±¸ºÐ) |
| session = "true | false" | ÆäÀÌÁö¿¡ session µ¥ÀÌÅͰ¡ ÀÌ¿ëµÇ´ÂÁöÀÇ ¿©ºÎ¸¦ °áÁ¤ (µðÆúÆ®°ª:true) |
| buffer = "none | size in kb" | Ãâ·Â ½ºÆ®¸²ÀÇ ¹öÆÛÅ©±â¸¦ °áÁ¤(µðÆúÆ®°ª:8kb) |
| autoFlush = "true | false" | Ãâ·Â¹öÆÛ°¡ ÀÚµ¿ÀûÀ¸·Î ºñ¿öÁö´Â°¡ ¶Ç´Â ¹öÆÛ°¡ Â÷¸é ÀͼÁ¼ÇÀ» ¹ß»ýÇÒ°ÍÀΰ¡ ¿©ºÎ¸¦ °áÁ¤ (µðÆúÆ®°ª:true) |
| isThreadSafe = "true | false" | ¼ºí¸´/JSP ¿£Áø¿¡°Ô ÀÌ ÆäÀÌÁö°¡ ÀϽÿ¡ ´ÙÁßÀ¸·Î ¼ºñ½ºÇÒ ¼ö Àִ°¡ÀÇ ¿©ºÎ¸¦ ¾Ë¸² (µðÆúÆ®°ªÀº true, ¸¸¾à ÀÌ °ªÀÌ false·Î ¼ÂÆÃµÇ¾ú´Ù¸é SingleThreadModel ·Î ÆäÀÌÁö°¡ ÀÛµ¿ÇÕ´Ï´Ù.) |
| info = "text" | JSPÆäÀÌÁö¿¡ °üÇÑ Á¤º¸¸¦ ³ªÅ¸³À´Ï´Ù. Servlet.getServletInfo() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇØ Á¢±Ù°¡´ÉÇÕ´Ï´Ù. |
| errorPage = "error_uri" | JSP ÀͼÁ¼ÇÀ» ´Ù·ç´Â ¿¡·¯ ÆäÀÌÁöÀÇ »ó´ë°æ·Î¸¦ ³ªÅ¸³À´Ï´Ù. |
| isErrorPage = "true | false" | ÆäÀÌÁö°¡ ¿¡·¯Çڵ鸵ÇÏ´Â ÆäÀÌÁöÀΰ¡¸¦ ±â¼ú (µðÆúÆ®°ª:false) |
| contentType = "ctinfo" | Ŭ¶óÀÌ¾ðÆ®·Î º¸³»Áú response ÀÇ MIMEŸÀÔ°ú ij¸¯Åͼ |
µðÆúÆ® °ªÀÌ Àû¿ëµÇ¹Ç·Î °³¹ßÀÚ´Â ÀÌ ¼Ó¼ºÀ» ¸ðµÎ¸¦ Á¤ÀÇÇØ ÁÙ Çʿ䰡 ¾ø½À´Ï´Ù.
java.utilÆÑŰÁö¸¦ importÇÏ´Â ÆäÀÌÁö Áö½Ã¾î ¿¹
©è include Áö½Ã¾î
inlcude Áö½Ã¾î´Â JSP º¯È¯¶§¿¡ ÅØ½ºÆ®³ª ¼Ò½º¸¦ »ðÀÔÇϱâ À§ÇØ »ç¿ëÇÕ´Ï´Ù.
¢Æ ¿ë¹ý : <%@ include file="»ðÀÔ¹®¼" %>
»ðÀԵǴ ¹®¼´Â À¥ ¾ÖÇø®ÄÉÀ̼dz»¿¡ Á¸ÀçÇØ¾ß ÇÕ´Ï´Ù.
¿¹) <%@ include file = "header.jsp" %>
include Áö½Ã¾î´Â ¼ºí¸´À¸·Î º¯È¯ÇÒ ¶§ Çѹø¸¸ »ç¿ëµË´Ï´Ù.
µû¶ó¼ »ðÀԵǴ ÆÄÀÏÀÇ ¼Ò½º°¡ º¯°æµÉ¶§´Â ¼ºí¸´/JSP ¿£ÁøÀÌ Àç½ÃÀ۵DZâ Àü±îÁö´Â ¹Ý¿µµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.
©é taglib Áö½Ã¾î
taglib Áö½Ã¾î´Â JSPÆäÀÌÁö°¡ Ä¿½ºÅÒ ÅÂ±× ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÔÀ» ±â¼úÇÕ´Ï´Ù.
Ä¿½ºÅÒ ÅÂ±× ¶óÀ̺귯¸®´Â °¢°¢ÀÇ Ä¿½ºÅÒ ÅÂ±× ÁýÇÕÀ» ±¸º°ÇÏ´Â prefix¿Í uri·Î À¯ÀÏÇÏ°Ô ±¸º°µË´Ï´Ù.
¢Æ ¿ë¹ý : <%@ taglib uri="tagLibraryURI" prefix="tagPrefix" %>
¡Ø ű׶óÀ̺귯¸® Áö½Ã¾î ¼Ó¼º(url, prefix)
uri : Ä¿½ºÅÒÅÂ±× ¶óÀ̺귯¸®¸¦ °íÀ¯ÇÏ°Ô À̸§Áþ´Â URI ÂüÁ¶
prefix : Ä¿½ºÅÒ ÅÂ±× ¶óÀ̺귯¸®¸¦ ±¸º°Çϴµ¥ ¾²ÀÌ´Â Prefix Á¤ÀÇ
2. ½ºÅ©¸³ÆÃ(Scripting)
½ºÅ©¸³ÆÃÀº HTMLÆäÀÌÁö¿¡ ÀÚ¹ÙÄÚµå Á¶°¢À» ¹Ù·Î »ðÀÔÇϱâ À§ÇØ »ç¿ëÇÕ´Ï´Ù.
½ºÅ©¸³ÆÃ¿¡´Â ¼±¾ð(Declarations), ½Ä(Expressions), ½ºÅ©¸³Æ®·¿(Scriptlets) 3°¡Áö°¡ ÀÖ½À´Ï´Ù.
- Declarations
- Expressions
- Scriptlets
©ç ¼±¾ð(Declarations)
¼±¾ðÀº ÀÚ¹Ù º¯¼ö¿Í ¸Þ¼Òµå¸¦ JSP ÆäÀÌÁö³»¿¡¼ ¼±¾ðÇϱâ À§Çؼ± »ç¿ëµË´Ï´Ù.
¼±¾ðÀº JSP ÆäÀÌÁö°¡ ù¹øÂ°·Î ·ÎµùµÉ ¶§ ÃʱâÈµÇ°í ±× ÈÄ¿¡ °°Àº ÆäÀÌÁö³»ÀÇ ´Ù¸¥ ¼±¾ð, ½Ä, ½ºÅ©¸³Æ®·¿¿¡°Ô ÀÌ¿ëµÇ¾î Áý´Ï´Ù.
¢Æ ¿ë¹ý : <%! declaration %>
º¯¼ö ¼±¾ð ¿¹ : <%! String name = new String( "BOB" ); %>
¸Þ¼Òµå ¼±¾ð ¿¹ : <%! public String getName() { return name; } %>
¼±¾ðÀº ¼ºí¸´À¸·Î º¯È¯µÉ¶§ º¯¼ö ¼±¾ðÀÏ °æ¿ì ¼ºí¸´ Ŭ·¡½ºÀÇ ¸â¹öº¯¼ö·Î, ¸Þ¼Òµå ¼±¾ðÀÏ °æ¿ì ¼ºí¸´ Ŭ·¡½ºÀÇ ¸Þ¼Òµå·Î º¯È¯µË´Ï´Ù.
©è Ç¥Çö½Ä(Expressions)
Ç¥Çö½ÄÀº ÄÁÅ×À̳ʿ¡ ÀÇÇØ °á°ú°ª(¹®ÀÚ¿)À¸·Î ¹Ù²î´Â JSP ÄÄÆ÷³ÍÆ®ÀÔ´Ï´Ù.
Ç¥Çö½ÄÀº request ŸÀÓ¿¡ jsp ÆÄÀϳ»¿¡¼ ¼ºí¸´/JSP ÄÁÅ×À̳ʿ¡ ÀÇÇØ º¯È¯µÇ¾î »ðÀԵ˴ϴÙ.
¸¸¾à °á°ú°ªÀÌ ¹®ÀÚ¿·Î º¯È¯µÇÁö ¾Ê´Â´Ù¸é ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.
¹ø¿ª½Ã ¹®ÀÚ¿ÀÌ °ËÃâµÇÁö ¾Ê´Â´Ù¸é ClassCastException ¹ß»ýÇÕ´Ï´Ù.
¢Æ ¿ë¹ý : <%=expression%>
¿¹ : Hello <%=getName()%>
©é ½ºÅ©¸³Æ®·¿(Scriptlets)
½ºÅ©¸³Æ®·¿¿¡¼´Â ÀÚ¹Ù ¹®ÀåÀ» ÀÚÀ¯·´°Ô ±â¼úÇÒ ¼ö ÀÖ½À´Ï´Ù.
¢Æ ¿ë¹ý : <% scriptlets source %>
<%...%> ·Î Ç¥ÇöµÇ´Â ½ºÅ©¸³Æ®·¿³»ÀÇ ÀÚ¹Ù ÄÚµå´Â ¼ºí¸´À¸·Î º¯È¯µÉ¶§ _jspSevice() ¸Þ¼Òµå¿¡ Æ÷ÇԵ˴ϴÙ.
3. ¾×¼Ç(Actions)
¾×¼ÇÀº °³Ã¼¸¦ º¯°æÇϰųª »ý¼ºÇϱâ À§ÇØ »ç¿ëµË´Ï´Ù.
- jsp:useBean
- jsp:setProperty
- jsp:getProperty
- jsp:param
- jsp:include
- jsp:forward
- jsp:plugin
©ç <jsp:useBean>
ÀÌ ¾×¼ÇÀº JSP ºóÁ »ý¼ºÇϰųª »ý¼ºµÈ JSP ºóÁ ã½À´Ï´Ù.
JSP¹®¼³»¿¡¼ <jsp:useBean>ºÎºÐ¿¡ À̸£¸é ¿ì¼± °°Àº scope ¿Í id ¸¦ »ç¿ëÇÏ´Â °´Ã¼¸¦ ã½À´Ï´Ù.
¸¸¾à °´Ã¼¸¦ ãÁö ¸øÇϸé ÁÖ¾îÁø scope ¿Í id ¼Ó¼º´ë·Î ÇØ´ç °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
¨ç syntax
¢Æ body°¡ ¾ø´Â °æ¿ì
<jsp:useBean id="name" scope="page|request|session|application" typeSpec />
¢Æ body°¡ ÀÖ´Â °æ¿ì
<jsp:useBean id="name" scope="page|request|session|application" typeSpec>
body (bodyÀÇ ³»¿ëÀ¸·Î Scriptlets À̳ª jsp:setProperty ¾×¼ÇÀÌ ¿Ã ¼ö ÀÖÀ½.)
</jsp:useBean>
typeSpec :: =class="className" |
class="className" type="typeName" |
type="typeName" class="className" |
beanName="beanName" type="typeName" |
type="typeName" beanName="beanName" |
type="typeName"
¨è <jsp:useBean> ¾×¼Ç ¼Ó¼º
| ¼Ó¼º | ¼³¸í |
|---|---|
| id | ÁÖ¾îÁø scope ¿¡¼ °´Ã¼ ÀνºÅϽº¸¦ ½Äº°Çϱâ À§ÇÑ Å° |
| scope | »ý¼ºµÈ ºóÀÇ ·¹ÆÛ·±½º°¡ À¯È¿ÇÑ ¹üÀ§, page(±âº»°ª)|request|session|application |
| class | °´Ã¼ÀÇ ±¸ÇöÀ» Á¤ÀÇÇϴ Ŭ·¡½º |
| beanName | java.beans.Beans Ŭ·¡½ºÀÇ instantiate() ¸Þ¼ÒµåÀÇ ¾Æ±Ô¸ÕÆ®·Î »ç¿ëÇÒ ºóÀÇ À̸§À» ÁöÁ¤ |
| type | ÇØ´ç ºóÀÇ ÀνºÅϽº¸¦ ŸÀÔ Ä³½ºÆÃÇÒ ¶§ÀÇ Å¸ÀÔÀ¸·Î class ¼Ó¼º¿¡¼ Á¤ÀÇµÈ Å¬·¡½ºÀÇ ¼öÆÛ Ŭ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º |
¨é ¿¹Á¦
¢Æ ¿¹Á¦ 1:
<jsp:useBean id="cart" scope="request" class="example.Cart" />
À̰ÍÀº ´ÙÀ½ÀÇ scriptlet ÄÚµå¿Í µ¿ÀÏÇÕ´Ï´Ù.
<%
example.Cart cart;
cart = (example.Cart)request.getAttribute("cart");
if ( cart == null ) {
cart = new example.Cart();
request.setAttribute("cart", cart);
}
%>
¢Æ ¿¹Á¦ 2:
<jsp:useBean id="cart" scope="session" class="example.Cart" type="Cartable" />
À̰ÍÀº ´ÙÀ½ÀÇ scriptlet ÄÚµå¿Í µ¿ÀÏÇÕ´Ï´Ù.
<%
example.Cart cart;
synchronized (session) {
cart = (example.Cart)session.getValue("cart");
if ( cart == null ) {
cart = (Cartable)new example.Cart();
session.putValue("cart", cart);
}
}
%>
©è <jsp:setProperty>
ÀÌ ¾×¼ÇÀº ÀÚ¹ÙºóÀÇ ¼Ó¼º°ªÀ» ¼ÂÆÃÇÏ´Â µ¥ ¾²ÀÔ´Ï´Ù.
¨ç syntax
<jsp:setProperty name="beanName" propexpr />
propexpr ::= property="*"|
property="propertyName" |
property="propertyName" param="parameterName" |
property="propertyName" value="propertyValue"
propertyValue ::= string
¨è <jsp:setProperty> ¾×¼Ç ¼Ó¼º
| ¼Ó¼º | ¼³¸í |
|---|---|
| name | <jsp:useBean>À̳ª ´Ù¸¥ ¾×¼Ç¿¡¼ Á¤ÀÇµÈ ºó ÀνºÅϽºÀÇ À̸§ |
| property | °ªÀ» º¯°æÇϰíÀÚ ÇÏ´Â ºó ¼Ó¼º ¸¸¾à property="*" ¶ó¸é HTTP ¿äû¿¡ Àü´ÞµÈ ¸ðµç ÆÄ¶ó¹ÌÅÍÀÇ À̸§°ú µ¿ÀÏÇÑ À̸§À» °¡Áø ¸ðµç setter ¸Þ¼Òµå¸¦ È£ÃâÇÏ¿© ºóÀÇ ¼Ó¼º°ªÀ» ¼öÁ¤ÇÕ´Ï´Ù. À̶§ ÆÄ¶ó¹ÌÅÍÀÇ value°¡ °ø¹é¹®ÀÚ("") ¶ó¸é ÀÌ¿¡ »óÀÀÇÏ´Â ºóÀÇ ¼Ó¼ºÀº ¼öÁ¤µÇÁö ¾Ê½À´Ï´Ù. |
| param | HTTP ¿äûÀÇ ÆÄ¶ó¹ÌÅÍ À̸§ ÀÌ ÆÄ¶ó¹ÌÅÍ value ·Î property ¼Ó¼º¿¡ ÇØ´çÇÏ´Â ºóÀÇ ¼Ó¼º°ªÀ» º¯°æÇÕ´Ï´Ù. |
| value | value ¿¡ Á¤ÀÇµÈ ¹®ÀÚ¿·Î ºóÀÇ ¼Ó¼ºÀ» º¯°æÇÕ´Ï´Ù. |
¨é ¿¹Á¦
¢Æ ¿¹Á¦ 1 :
<jsp:useBean id="login" scope="page" class="example.User" /> <jsp:setProperty name="login" property="passwd" />
À̰ÍÀº ´ÙÀ½ÀÇ scriptlet ÄÚµå¿Í µ¿ÀÏÇÕ´Ï´Ù.
<%
example.User login;
login = (example.User) pageContext.getAttribute("login");
if ( login == null ) {
login = new example.User();
pageContext.setAttribute("login",login);
}
String _jspParam;
_jspParam = request.getParameter("passwd");
if ( _jspParam != null && !_jspParam.equals("") )
login.setPasswd(_jspParam);
%>
¢Æ ¿¹Á¦ 2 :
´ÙÀ½°ú °°ÀÌ FORM ÀÌ ÀÛ¼ºµÇ¾ú´Ù¸é,
<form name="login" method="post">
<input type="text" name="uid" />
<input type="password" name="passwd" />
</form>
À̸¦ ¹Þ´Â JSP ÆäÀÌÁö ³»ÀÇ ´ÙÀ½°ú °°Àº ¾×¼ÇÀº
<jsp:setProperty name="login" property="*" />
´ÙÀ½ÀÇ scriptlet ÄÚµå¿Í µ¿ÀÏÇÕ´Ï´Ù.
<%
String _jspParam;
_jspParam = request.getParameter("passwd");
if ( _jspParam != null && !_jspParam.equals("") )
login.setPasswd(_jspParam);
_jspParam = request.getParameter("uid");
if ( _jspParam != null && !_jspParam.equals("") )
login.setUid(_jspParam);
%>
¢Æ ¿¹Á¦ 3 :
´ÙÀ½°ú °°ÀÌ FORM ÀÌ ÀÛ¼ºµÇ¾ú´Ù¸é,
<form name="login" method="post">
<input type="text" name="member_id" />
</form>
À̸¦ ¹Þ´Â JSP ÆäÀÌÁö ³»ÀÇ ´ÙÀ½°ú °°Àº ¾×¼ÇÀº
<jsp:setProperty name="login" property="uid" param="member_id" />
´ÙÀ½ÀÇ scriptlet ÄÚµå¿Í µ¿ÀÏÇÕ´Ï´Ù.
<%
String _jspParam;
_jspParam = request.getParameter("member_id");
if ( _jspParam != null && !_jspParam.equals("") )
login.setUid(_jspParam);
%>
ÀÌ·¸µí, ºóÀÇ ¸Þ¼Òµå À̸§°ú FORM ÀÇ ÆÄ¶ó¹ÌÅÍ À̸§ÀÌ ¼·Î ÀÏÄ¡ÇÏÁö ¾ÊÀ» ¶§ param ¼Ó¼ºÀ» »ç¿ëÇÕ´Ï´Ù.
¢Æ ¿¹Á¦ 4 :
<jsp:setProperty name="login" property="uid" value="admin" />
´ÙÀ½ÀÇ scriptlet ÄÚµå¿Í µ¿ÀÏÇÕ´Ï´Ù.
<%
login.setUid("admin");
%>
ÀÌ·¸µí, ºó³»ÀÇ ¼Ó¼º °ªÀ» ¼³Á¤ÇÕ´Ï´Ù.
©é <jsp:getProperty>
jsp:getProperty ¾×¼ÇÀº ºóÀÇ ¼Ó¼º°ªÀ» °¡Á®¿Í¼ À̰ÍÀ» output ½ºÆ®¸²¿¡ µÎ´Â ¾×¼ÇÀÔ´Ï´Ù.
¨ç ½ÅÅýº
<jsp:getProperty name="name" property="propertyName" />
¨è <jsp:getProperty> ¾×¼Ç ¼Ó¼º
| ¼Ó¼º | ¼³¸í |
|---|---|
| name | ºó ÀνºÅϽºÀÇ À̸§ |
| property | ¾ò°íÀÚ ÇÏ´Â ºó ÀνºÅϽºÀÇ ¼Ó¼º°ª |
©ê <jsp:param>
ÀÌ ¾×¼ÇÀº <jsp:include>, <jsp:forward>, <jsp:plugin> ¿¡ ³Ñ°ÜÁÙ ÆÄ¶ó¹ÌÅ͸¦ Á¤ÀÇÇÒ ¶§ »ç¿ëµË´Ï´Ù.
¨ç syntax
<jsp:param name="name" value="value" />
¨è <jsp:param> ¾×¼Ç ¼Ó¼º
| ¼Ó¼º | ¼³¸í |
|---|---|
| name | ÆÄ¸®¹ÌÅÍÀÇ À̸§ |
| value | ÆÄ¸®¹ÌÅÍÀÇ °ª |
©ë <jsp:include>
ÀÌ ¾×¼ÇÀº JSPÆäÀÌÁö¿¡ Á¤Àû(HTML) ¶Ç´Â ´ÙÀ̳ª¹Í À¥ ÄÄÆ÷³ÍÆ®(JSP,Servlets)¸¦ Ãß°¡ÇÒ¶§ »ç¿ëÇÕ´Ï´Ù.
¨ç ½ÅÅýº
<jsp:include page = "urlSpec" flush = "true">
<jsp:param ... />
</jsp:include>
¨è <jsp:include> ¾×¼Ç ¼Ó¼º
page : ÀÎŬ·çµå µÇ´Â ¼Ò½ºÀÇ »ó´ë°æ·Î
flush : ¹öÆÛ°¡ ºñ¿öÁö´Â ¿©ºÎ
©ì <jsp:forward>
ÀÌ ¾×¼ÇÀº ¼ºí¸´/JSP ¿£ÁøÀÌ ½ÇÇàÁß¿¡ request¸¦ ´Ù¸¥ ÀÚ¿ø(Á¤Àû ¹®¼,¼ºí¸´, JSP)¿¡°Ô ³Ñ±â´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù.
ÀÌ ¾×¼Ç¿¡¼µµ <jsp:param> °¡ ¾²ÀÏ ¼ö Àִµ¥ ÀÌ´Â Æ÷¿öµùÇÒ ´ë»óÀÚ¿ø¿¡°Ô Àü´ÞÇÒ ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤Çϱâ À§ÇØ ¾²ÀÔ´Ï´Ù.
½ÅÅýº
<jsp:forward page = "relativeURL">
<jsp:param .../>
</jsp:forward>
´ÜÀÏ ¼Ó¼º page´Â Æ÷¿öµùÇÒ ´ë»óÀÚ¿øÀ» »ó´ëÁÖ¼Ò·Î ³ªÅ¸³½ °ªÀÔ´Ï´Ù.
©í <jsp:plugin>
ÀÌ ¾×¼ÇÀº ´Ù¿î·Îµå³ª ¾ÖÇø´,ÀÚ¹ÙºóÀÇ ½ÇÇàÀ» ÀÏÀ¸Å°´Â HTML Äڵ带 »ý¼ºÇϴµ¥ »ç¿ëµË´Ï´Ù.
ÀÌ ¾×¼ÇÀº Çѹø ÇØ¼®µÇ¾î <object> ³ª <embed> ·Î ¹Ù²ò´Ï´Ù.
¼Ó¼ºÀº ¹Ù²î´Â Äڵ忡 Ç¥ÇöÀ» À§ÇÑ ¼³Á¤µ¥ÀÌÅÍ·Î Á¦°øµË´Ï´Ù.
½ÅÅýº
<jsp:plugin type = "pluginType" code = "classFile" codebase = "relativeURLpath" >
<jsp:params>
</jsp:params>
</jsp:plugin>
<jsp:plugin>ÀÇ ¼Ó¼º ¼³¸í
type : ÀÎŬ·çµåÇÒ Ç÷¯±×ÀΠŸÀÔ ¿¹¸¦ µé¸é applet
code : Ç÷¯±×ÀÎÀÌ ½ÇÇàÇÒ Å¬·¡½ºÀÇ À̸§
codebase : Ŭ·¡½ºÀÇ Àý´ë ¶Ç´Â »ó´ë°æ·Î
4. ³»Àç °´Ã¼(Implicit Object)
³»Àç °´Ã¼´Â JSP ¹®¼³»¿¡¼ ÀÌ¿ëµÇ´Â °´Ã¼Àε¥ Ưº°È÷ ·¹ÆÛ·±½º¸¦ ¾ò±â À§ÇÑ ÀÛ¾÷¾øÀÌ ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °´Ã¼¸¦ ¸»ÇÕ´Ï´Ù.
- out
- request
- response
- pageContext
- session
- application
- config
- page
- exception
©ç out
javax.servlet.jsp.JspWriterŬ·¡½ºÀÇ ÀνºÅϽº¸¦ ³ªÅ¸³À´Ï´Ù.
µ¥ÀÌÅ͸¦ ÀÀ´ä ½ºÆ®¸²À¸·Î ÀÛ¼ºÇϴµ¥ »ç¿ëÇÕ´Ï´Ù.
ÀÌ °´Ã¼ÀÇ ÀϹÝÀûÀÎ ¸Þ¼Òµå´Â out.println()ÀÔ´Ï´Ù.
»ç¿ë¿¹
*** out.jsp ***
<%@ page errorPage = "errorpage.jsp" %>
<html><head><title>Use Out</title></head>
<body>
<%
//Print a simple message using the implicit out object.
out.println("<b> Hello Bob! </b>");
%>
</body></html>
©è request
javax.servlet.http.HttpServletRequest ÀÎÅÍÆäÀ̽ºÀÇ ÀνºÅϽº
¿äû ÆÄ¶ó¹ÌÅͳª Çì´õ¿Í °°Àº »ç¿ëÀÚ°¡ ¿äûÇÑ À¯¿ëÇÑ Á¤º¸¿¡ ´ëÇØ Á¢±ÙÇÒ ¼ö ÀÖ½À´Ï´Ù.
request °´Ã¼´Â ¸ðµç HTTP¿äû°ú °ü·ÃµÇ¾î ÀÖ½À´Ï´Ù.
ÀÌ °´Ã¼´Â requestÀÇ ÆÄ¶ó¹ÌÅ͸¦ ±¸Çϴµ¥ ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Âµ¥ getParamter()¸Þ¼Òµå¸¦ »ç¿ëÇÔÀ¸·Î½á ÆÄ¶ó¹ÌÅÍÀÇ °ªÀ» ¸®ÅϹ޽À´Ï´Ù.
¿¹)
*** request.jsp ***
<%@ page errorPage = "errorpage.jsp" %>
<html>
<head>
<title>UseRequest</title>
</head>
<body>
<%
out.println( "<b>Welcome: " + request.getParameter("user") + "</b>" );
%>
</body>
</html>
½ÇÇàÇÏ·Á¸é ´ÙÀ½ URLÀ» ¹æ¹®ÇÕ´Ï´Ù. http://localhost/bbs/request.jsp?user=kim
©é response
javax.servlet.http.HttpServletResponse ÀÎÅÍÆäÀ̽ºÀÇ ÀνºÅϽºÀÔ´Ï´Ù.
»ç¿ëÀÚ¿¡°Ô ¸®ÅÏÇÒ ÇöÀç ÀÀ´äÀ» ³ªÅ¸³½´Ù.
ÇÏÁö¸¸ ´ëºÎºÐÀÇ HTML Ãâ·ÂÀº out°´Ã¼¸¦ ÀÌ¿ëÇÕ´Ï´Ù.
©ê pageContext
jsp¹üÀ§ ³»¿¡¼ ÀÌ¿ë °¡´ÉÇÑ ¸ðµç ÀÚ¿ø ¹× ÇöÀçÀÇ ¿äû, ÀÀ´ä, ServletContext,HttpSession, ServletConfig °°Àº ÆäÀÌÁö ¼Ó¼ºµé¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù.
pageContext °´Ã¼´Â ³»Àå °´Ã¼¸¦ Á¢±ÙÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù.
©ë session
session °´Ã¼´Â javax.servlet.http.HttpSession °´Ã¼¸¦ ³ªÅ¸³À´Ï´Ù.
¼¼¼Ç µ¥ÀÌŸ¸¦ Àаí ÀúÀåÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
session °´Ã¼ÀÇ »ç¿ë¿¹
*** session.jsp ***
<html>
<head>
<title>Session Example </title>
</head>
<body>
<%
//get a referece to the current count from the session
Integer count = (Integer)session.getAttribute( "COUNT" );
if( count == null ) {
//If the count was not found, create one
count = new Integer( 1 );
//and add it to the HttpSession
session.setAttribute( "COUNT", count );
} else {
//Otherwise increment the value
count = new Integer( count.intValue() + 1 );
session.setAttribute( "COUNT", count );
}
out.println( "<b>This page has been accessed: " + count + " times.</b>" );
%>
</body></html>
ÀÌ ¿¹Á¦¸¦ »ç¿ëÇϱâ À§Çؼ´Â session.jsp ÆÄÀÏÀ» {TOMCAT_HOME}/webapps/mnd¿¡ º¹»çÇϰí http://localhost/bbs/session.jsp ¸¦ ¹æ¹®ÇÕ´Ï´Ù.
¸®·Îµå ¹öưÀ» ´·¯ °á°ú¸¦ È®ÀÎÇÕ´Ï´Ù.
©ì application
application °´Ã¼´Â javax.servlet.ServletContext ³ªÅ¸³½´Ù.
ÀÌ °´Ã¼´Â ÁÖ·Î À¥ ÄÄÆ÷³ÍÆ®°¡ °øÀ¯ÇÒ ¼ö ÀÖµµ·Ï ServletContext¿¡ ÀúÀåµÇ¾î ÀÖ´Â °´Ã¼¸¦ Á¢±ÙÇϱâ À§ÇØ »ç¿ëµË´Ï´Ù.
©í config
ÀÌ °´Ã¼´Â ServletConfigÀÇ ·¹ÆÛ·±½º¸¦ °¡Áö°í ÀÖ½À´Ï´Ù.
ServletConfig´Â ¼ºí¸´/JSP ¿£ÁøÀÇ °üÇÑ ¼³Á¤ Á¤º¸¸¦ ´ã°í ÀÖ½À´Ï´Ù.
ÃʱâÈ ÆÄ¶ó¹ÌÅ͵鿡 Á¢±ÙÇϱâÀ§ÇØ »ç¿ëÇÕ´Ï´Ù.
©î page
ÀÌ °´Ã¼´Â ÇöÀç JSPÆäÀÌÁöÀÇ ·¹ÆÛ·±½º¸¦ °¡Áö°í ÀÖ½À´Ï´Ù.
jspÆäÀÌÁöÀÇ ÆäÀÌÁö ±¸Çö Ŭ·¡½º ÀνºÅϽº¸¦ ÂüÁ¶Çϸç ObjectÇüÀ¸·Î ¼±¾ðµÇ¾î ÀÖ½À´Ï´Ù.
pageº¯¼ö´Â ½ºÅ©¸³ÆÃ ¿¤¸®¸ÕÆ®µé ¾È¿¡¼ °¡²û »ç¿ëµÇ¸ç, ´Ü¼øÈ÷ jspÆäÀÌÁö¿Í ±¸Çö ¼ºí¸´ »çÀÌÀÇ ¿¬°á ¿ªÇÒÀ» ÇÕ´Ï´Ù.
©ï exception
JSPÆäÀÌÁö¿¡¼ ¹ß»ýÇÑ ÀâÈ÷Áö ¾ÊÀº ÀͼÁ¼Ç¿¡ Á¢±ÙÀ» Á¦°øÇÏ´Â °´Ã¼ÀÔ´Ï´Ù.
ÀÌ °´Ã¼´Â page Áö½Ã¾î Áß isErrorPage°¡ true·Î ¼³Á¤ÇÑ ÆäÀÌÁö³»¿¡¼¸¸ »ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù.
Áï, ÆäÀÌÁöµð·ºÆ¼ºê¸¦ ÀÌ¿ëÇØ¼ ¿¡·¯ ÆäÀÌÁö·Î ÁöÁ¤ÇÑ jsp¿¡¼¸¸ À¯¿ëÇÑ °´Ã¼ÀÔ´Ï´Ù.
include Áö½Ã¾î¿Í include Ç¥ÁØ ¾×¼Ç°úÀÇ Â÷ÀÌÁ¡
Áö½Ã¾î´Â Çѹø¸¸ ¹ø¿ªÅ¸ÀÓ¿¡ ÇØ¼®µÇÁö¸¸ Ç¥Áؾ׼ÇÀÇ °æ¿ì´Â ¸Å requestŸÀÓ¸¶´Ù ÇØ¼®µË´Ï´Ù.
µû¶ó¼ Áö½Ã¾î¸¦ »ç¿ëÇÑ ÀÎŬ·çµå´Â ÀÎŬ·çµåµÇ´Â ÆÄÀÏÀÇ º¯È´Â ÅèĹÀÌ Àç½Ãµ¿µÇÁö ¾ÊÀ¸¸é ¹Ý¿µµÇÁö ¾Ê½À´Ï´Ù.
¼ºí¸´ÄÁÅØ½ºÆ®¿Í À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ °ü°è
¼ºí¸´ÄÁÅØ½ºÆ®¿Í À¥ ¾ÖÇø®ÄÉÀ̼ǰúÀÇ °ü°è¿¡ ´ëÇØ ¾Ë±â Àü¿¡ ¸ÕÀú ¼ºí¸´ÄÁÅØ½ºÆ®°¡ ¹«¾ùÀÎÁö ºÎÅÍ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù.
¼ºí¸´ÄÁÅØ½ºÆ®(ServletContext)´Â javax.servlet ÆÑŰÁö¿¡ ¼ÓÇÏ´Â °´Ã¼ÀÔ´Ï´Ù.
À̰ÍÀº À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼ºê »çÀ̵å ÄÄÆ÷³ÍÆ®¿Í ¼ºí¸´ ÄÁÅ×À̳ʿÍÀÇ Åë½ÅÀ» ´ã´çÇÏ´Â ¸Þ¼Òµå ÁýÇÕÀ» Á¤ÀÇÇÕ´Ï´Ù.
¼ºí¸´ÄÁÅØ½ºÆ®ÀÇ °¡Àå ÀϹÝÀûÀÎ »ç¿ëÁß Çϳª´Â, À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼¹ö »çÀ̵å ÄÄÆ÷³ÍÆ®µé ¸ðµÎ¿¡°Ô ÀÌ¿ëµÉ ¼ö ÀÖ´Â °´Ã¼¸¦ À§ÇÑ ÀúÀå¼Ò·Î ÀÌ¿ëµÇ´Â °ÍÀÔ´Ï´Ù.
¼ºí¸´ÄÁÅØ½ºÆ®¿¡ ÀúÀåµÈ °´Ã¼´Â À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÀÏ»ýµ¿¾È Á¸ÀçÇÕ´Ï´Ù.
4°³ÀÇ ¼ºí¸´ÄÁÅØ½ºÆ®ÀÇ ¸Þ¼Òµå´Â °øÀ¯¸Þ¸ð¸®±â´É¸¦ Á¦°øÇϱâ À§ÇØ ¾²ÀÔ´Ï´Ù.
´ÙÀ½Àº °¢°¢ÀÇ ¸Þ¼Òµå¿¡ °üÇÑ ¼³¸íÀÔ´Ï´Ù.
setAttribute(java.lang.String name,java.lang.Object object)
ù¹øÂ° ÆÄ¶ó¹ÌÅͰªÀÎ À̸§À¸·Î °´Ã¼¸¦ ¹ÙÀεùÇÏ°í °´Ã¼¸¦ ¼ºí¸´ÄÁÅØ½ºÆ®¿¡ ÀúÀåÇÕ´Ï´Ù.
¸¸¾à ƯÁ¤ À̸§ÀÌ ÀÌ¹Ì »ç¿ëÁßÀ̶ó¸é ±âÁ¸ÀÇ À̸§À¸·Î ¹ÙÀεùµÈ ¼Ó¼ºÀ» Áö¿ì°í »õ·Î¿î °´Ã¼¸¦ ÀÌ À̸§À¸·Î ¹ÙÀεùÇÕ´Ï´Ù.
getAttribute(java.lang.String name)
ù¹øÂ° ÆÄ¶ó¹ÌÅͰªÀ» À̸§À¸·Î ÂüÁ¶ÇÏ´Â °´Ã¼¸¦ ¹ÝȯÇÕ´Ï´Ù.
¸¸¾à ÁÖ¾îÁø À̸§À¸·Î ¹ÙÀÎµÈ ¼Ó¼ºÀÌ ¾ø´Ù¸é ³ÎÀ» ¹ÝȯÇÕ´Ï´Ù.
getAttributeNames()
¼ºí¸´ÄÁÅØ½ºÆ®¿¡ ÀúÀåµÈ ¼Ó¼ºÀ̸§À» Enumeration ŸÀÔÀ¸·Î ¹ÝȯÇÕ´Ï´Ù.
À¥ ¾ÖÇø®ÄÉÀ̼ǰú ¼ºí¸´ÄÁÅØ½ºÆ®ÀÇ °ü°è
¿ì¸®´Â ÀÌ¹Ì {TOMCAT_HOME}/conf/server.xml ÆÄÀÏ¿¡ »õ·Î¿î Context¸¦ Ãß°¡Çß½À´Ï´Ù. (ÅèĹ admin ÅøÀ» ÀÌ¿ëÇØ¼).
ÀÌ ÀÛ¾÷À» Çϸé À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» »ý¼ºÇÑ °ÍÀÔ´Ï´Ù.
À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» Ãß°¡ÇÔ°ú µ¿½Ã¿¡ »õ·Î¿î ¼ºí¸´ÄÁÅØ½ºÆ®¸¦ ¶ÇÇÑ ¸¸µç °ÍÀÔ´Ï´Ù.
À̰ÍÀÌ À¥ ¾ÖÇø®ÄÉÀ̼ǰú ¼ºí¸´ÄÁÅØ½ºÆ®ÀÇ °ü°èÀÔ´Ï´Ù.
¸ðµç À¥ ¾ÖÇø®ÄÉÀ̼Ǹ¶´Ù ´Ü ÇϳªÀÇ ¼ºí¸´ÄÁÅØ½ºÆ®°¡ ÀÖ½À´Ï´Ù.
ÀÌ´Â ¼ºí¸´ ½ºÆå¿¡ ÀÇÇØ ¿ä±¸µÇ¾îÁö°í ¸ðµç ¼ºí¸´/JSP ¿£Áø¿¡ ÀÇÇØ ¼öÇàµË´Ï´Ù.
À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÄÄÆ÷³ÍÆ®¿¡ ¾î¶»°Ô ¿µÇâÀ» ¹ÌÄ¡´ÂÁöÀÇ ¿¹
½ÇÁ¦·Î ¼ºí¸´ÄÁÅØ½ºÆ®¿Í À¥ ¾ÖÇø®ÄÉÀ̼ǰúÀÇ °ü°è¸¦ ÀÌÇØÇϱâ À§ÇØ,
¿ì¸®´Â ÀÌ¹Ì ¸¸µç /bbs À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¿Ü¿¡ /bbs2 ¶ó´Â À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» Ãß°¡ÇÕ´Ï´Ù.(ÅèĹ admin Åø ÀÌ¿ë)
±×¸®°í °¢°¢ÀÇ À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡ ¾Æ·¡¿Í °°Àº 2°³ÀÇ À¥ÄÄÆ÷³ÍÆ®¸¦ °¢°¢ ¹èÄ¡ÇÕ´Ï´Ù.
ù¹øÂ° À¥ ÄÄÆ÷³ÍÆ® ¼ºí¸´
*** ContextText.java ***
package example;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class ContextTest extends HttpServlet {
private static final String CONTENT_TYPE = "text/html;charset=euc-kr";
public void init() throws ServletException {}
public void doGet( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException {
doPost( request, response );
}
public void doPost( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException {
// ServletContext ·¹ÆÛ·±½º¸¦ ¾ò´Â´Ù.
ServletContext context = getServletContext();
// ServletContext·ÎºÎÅÍ count ¼Ó¼º°ªÀ» ¾ò±â¸¦ ½ÃµµÇÕ´Ï´Ù.
Integer count = (Integer)context.getAttribute( "count" );
// ¸¸¾à count ¼Ó¼ºÀÌ ¾ø´Ù¸é ¸¸µç´Ù.
// count ¼Ó¼º ÃʱⰪÀº 0 ÀÔ´Ï´Ù.
if ( count == null ) {
count = new Integer(0);
context.setAttribute( "count", new Integer(0) );
}
response.setContentType( CONTENT_TYPE );
PrintWriter out = response.getWriter();
out.println( "<html>" );
out.println( "<head><title>ContextTest</title></head>" );
out.println( "<body>" );
// count ¼Ó¼º°ªÀÇ ÇöÀç°ªÀ» Ãâ·ÂÇÕ´Ï´Ù.
out.println( "<p>ÇöÀç COUNT ´Â : " + count + ".</p>" );
out.println( "</body></html>" );
// doPost¸Þ¼Òµå°¡ ºÒ¸±¶§¸¶´Ù count ¼Ó¼º°ªÀ» 1¾¿ Áõ°¡½ÃŲ´Ù.
count = new Integer( count.intValue() + 1 );
// ServletContext¿¡ Áõ°¡ÇÑ count ¼Ó¼ºÀ» ÀúÀåÇÕ´Ï´Ù.
context.setAttribute( "count", count );
}
public void destory() {}
}
ÄÚµå ¼³¸í
1. getServletContext()¸Þ¼Òµå¸¦ ÀÌ¿ëÇØ¼ ServletContextÀÇ ·¹ÆÛ·±½º¸¦ ¾ò½À´Ï´Ù.
ServletContext context = getServletContext();
2. ¼ºí¸´ÄÁÅØ½ºÆ®ÀÇ ·¹ÆÛ·±½º¸¦ ¾ò¾ú´Ù¸é ¼ºí¸´ÄÁÅØ½ºÆ®·ÎºÎÅÍ count ¼Ó¼º°ªÀ» ¾ò°íÀÚ ½ÃµµÇÕ´Ï´Ù.
À̶§ getAttribute()¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
Integer count = (Integer)context.getAttribute("count");
3. ¼ºí¸´ÄÁÅØ½ºÆ®¿¡ count¶ó´Â ¼Ó¼ºÀÌ ÀÖ´ÂÁö Á¶»çÇÏ°í ¸¸ÀÏ ±×·± ¼Ó¼ºÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é ¸¸µé°í ¼ºí¸´ÄÁÅØ½ºÆ®¿¡ Ãß°¡ÇÕ´Ï´Ù.
À̶§ setAttribute()¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
if( count == null) {
count = new Integer(0);
context.setAttribute("count",new Integer(0));
}
4. ¼Ó¼ºÀÌ ¹ß°ßµÇ¾ú´Ù¸é ÀÌ °ªÀ» Ãâ·Â½ºÆ®¸²¿¡ ¾¹´Ï´Ù.
out.println( "<p>The current COUNT is : " + count + ".</p>" );
5. ¼ºí¸´ÄÁÅØ½ºÆ®ÀÇ ¼Ó¼º°ªÀ» Áõ°¡½Ã۰í ÀÌ °ªÀ» ¼ºí¸´ÄÁÅØ½ºÆ®¿¡ Ãß°¡ÇÕ´Ï´Ù.
count = new Integer( count.intValue() + 1 );
context.setAttribute( "count", count );
¼ºí¸´À» 2°³ÀÇ À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡ ¹èÄ¡ÇÕ´Ï´Ù.
À§ ¼ºí¸´ Äڵ带 bbs/WEB-INF/classes¿Í bbs2/WEB-INF/classes ¿¡ À§Ä¡½ÃŲÈÄ
javac -d . ContextTest.java
¶ó´Â ¸í·É¾î·Î ÄÄÆÄÀÏÇϰí
http://localhost/bbs/servlet/example.ContextTest
ttp://localhost/bbs2/servlet/example.ContextTest
¸¦ ¹æ¹®ÇØ È®ÀÎÇÕ´Ï´Ù.
2¹øÂ° À¥ÄÄÆ÷³ÍÆ® JSPÆäÀÌÁö
ÆÄÀÏÀ§Ä¡ : /bbs/example/ , /bbs2/example/
*** ContextTest.jsp ***
<%@ page contentType="text/html;charset=euc-kr" %>
<HTML>
<head><title>ContextTest</title></head>
<body>
<h1>
<%
// count ¼Ó¼ºÀ» ¾ò±â¸¦ ½ÃµµÇÕ´Ï´Ù.
Integer count = (Integer)application.getAttribute( "count" );
// ¸¸¾à count ¼Ó¼ºÀÌ nullÀ̸é Çϳª ¸¸µé¾î¼ ¼ºí¸´ÄÁÅØ½ºÆ®¿¡ ÀúÀåÇÕ´Ï´Ù.
if ( count == Null ) {
count = new Integer(0);
application.setAttribute( "count", count );
}
%>
ÇöÀç COUNT ´Â : <%=count%>
<%
// count ¼Ó¼ºÀ» 1 Áõ°¡½ÃÄÑ ¼ºí¸´ÄÁÅØ½ºÆ®¿¡ »õ·Î ÀúÀåÇÕ´Ï´Ù.
count = new Integer( count.intValue() + 1 );
application.setAttribute( "count", count );
%>
</h1>
</body></html>
ÀÌ ÆÄÀÏÀ» bbs/example ¿Í bbs2/example ¿¡ º¹»çÇÕ´Ï´Ù.
°¢°¢ÀÇ ºÐ¸®µÈ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¾î¶»°Ô À̵é ÄÄÆ÷³ÍÆ®¿¡ ¿µÇâÀ» ¹ÌÄ¡´ÂÁö È®ÀÎÇÕ´Ï´Ù.
½ÇÇèÀ» ½ÃÀÛÇϱâ À§ÇØ ´ÙÀ½ URL¸¦ ¹æ¹®ÇÕ´Ï´Ù.
http://localhost/bbs/example/ContextTest.jsp
http://localhost/bbs2/example/ContextTest.jsp
Refresh ¹öưÀ» ¿©·¯¹ø ´©¸£°í count°¡ Áõ°¡µÇ´ÂÁö È®ÀÎÇÕ´Ï´Ù.
»õ·Î¿î ºê¶ó¿ìÀú¸¦ ¿°í ¼ºí¸´À» ¹æ¹®ÇÕ´Ï´Ù.
http://localhost/bbs/servlet/example.ContextTest
http://localhost/bbs2/servlet/example.ContextTest
Ãâ·Â°á°ú´Â ContextTest.jsp ¿Í °°À» °ÍÀÔ´Ï´Ù.
countÀÇ °ª¿¡ ÁÖ¸ñÇÕ´Ï´Ù.
ContextTest.jsp¿¡¼º¸´Ù 1¸¸Å Áõ°¡µÈ °ªÀÔ´Ï´Ù.
À̰ÍÀº ¼ºí¸´°ú JSP°¡ °°Àº ¼ºí¸´ÄÁÅØ½ºÆ®¸¦ °øÀ¯Çϰí ÀÖ½À´Ï´Ù´Â ÀǹÌÀÔ´Ï´Ù.
¼ºí¸´ ÄÁÅØ½ºÆ®ÀÇ °øÀ¯¸Þ¸ð¸® ±â´ÉÀÔ´Ï´Ù. (°øµ¿ ÀúÀå¼Ò ±â´É)
°¢°¢ JSP¿Í ¼ºí¸´À» ¹æ¹®ÇÔÀ¸·Î½á count °´Ã¼°¡ ¾î¶»°Ô °øÀ¯µÇ´ÂÁö ¾Ë ¼ö ÀÖ½À´Ï´Ù.
ÀÌÁ¦ /bbs2/ContextTest.jsp JSPÆäÀÌÁö¸¦ »õ·Î¿î âÀ¸·Î ¹æ¹®ÇÕ´Ï´Ù.
http://localhost/bbs2/example/ContextTest.jsp countÀÇ °ªÀÌ 0ÀÎ °á°úȸéÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
À̰ÍÀÌ ÀǹÌÇÏ´Â °ÍÀº /bbs À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ »ç¿ëÇÏ´Â count¿Í Áö±ÝÀÇ count´Â ´Ù¸£´Ù´Â °ÍÀÔ´Ï´Ù.
À̰ÍÀÌ À¥ ¾ÖÇø®ÄÉÀ̼ǰú ¼ºí¸´ÄÁÅØ½ºÆ®ÀÇ °ü°èÀÔ´Ï´Ù.
/bbs2 ¿Í °ü·ÃÀÌ ÀÖ´Â ¼ºí¸´ ÄÁÅØ½ºÆ®´Â ÀÌ À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡ À¯ÀÏÇÕ´Ï´Ù.
±×¸®°í ´Ù¸¥ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç /bbs ¾È¿¡ ÀÖ´Â À¥ ÄÁÆ÷³ÍÆ®¿¡ ÀÇÇØ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù´Â °ÍÀÔ´Ï´Ù.
´Ù½Ã È®ÀÎÀ» À§ÇØ /bbs2 ÀÇ ¼ºí¸´À» ¹æ¹®ÇÕ´Ï´Ù.
http://localhost/bbs2/servlet/example.ContextTest
/bbs2 ¿¡ ¹èÄ¡µÈ JSP¿Í °°Àº count ·¹ÆÛ·±½º¸¦ »ç¿ëÇÔÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù
JSP ¹®¹ý¿¡¼ ²À È®ÀÎÇØ¾ß ÇÒ »çÇ×µé
1. <%@ page session = true>
Q. page Áö½Ã¾î¿¡¼ session ¼Ó¼ºÀº ±¸Ã¼ÀûÀ¸·Î ¹«¾ùÀ» ÀǹÌÇϴ°¡ ?
page Áö½Ã¾î¿¡ session ¼Ó¼ºÀÌ false·Î µÇ¾î ÀÖÀ¸¸é À¥ ÄÁÅ×À̳ʿ¡¼´Â ÇØ´ç ÆäÀÌÁö°¡ session °´Ã¼¸¦ »ý¼ºÇÏÁöµµ ¸øÇÏ°í ¶ÇÇÑ ±âÁ¸ÀÇ session °´Ã¼¿¡ ´ëÇÑ ·¹ÆÛ·±½ºµµ ¾òÀ» ¼öµµ ¾ø½À´Ï´Ù.
false·Î µÇ¾î ÀÖ´Â »óÅ¿¡¼ session °´Ã¼¿¡ Á¢±ÙÇϰíÀÚ ÇÏ¸é ¿¡·¯°¡ ¹ß»ýÇÏ°Ô µË´Ï´Ù.
2. <jsp:useBean id="name" scope="page|request|session|application" class="ClassName" />
Q. Ç¥Áؾ׼ÇÀÇ <jsp:useBean>¿¡¼ scope ¼Ó¼ºÀº ¹«¾ùÀ» ÀǹÌÇϴ°¡ ?
scope ¼Ó¼ºÀº jsp:useBean ¼Ó¼º Áß¿¡¼ °¡Àå Áß¿äÇÑ ºÎºÐÀÔ´Ï´Ù.
ÀÏ´Ü ÀÌ ¼Ó¼ºÀº ÀÚ¹Ù ºóÁ °´Ã¼È½ÃŲ ÈÄ ¾î´À ¹üÀ§±îÁö »ç¿ëÀ» ÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù.
Scope ¼Ó¼ºÀ¸·Î ÁöÁ¤ÇÑ ¿µ¿ªÀÇ ¼ö¸í¿¡ µû¶ó¼ ºó °´Ã¼´Â ÇϳªÀÇ ÆäÀÌÁö°¡ ¾Æ´Ï¶ó ¿©·¯ ÆäÀÌÁö¿¡¼ ¼Ò¸êÇÏÁö ¾Ê°í ÂüÁ¶µÇ±â°í ÇÕ´Ï´Ù.
(¿¹¸¦ µé¾î scope ¼Ó¼ºÀÌ session À¸·Î ¼³Á¤µÇ¾ú´Ù¸é ºó °´Ã¼´Â ¼¼¼ÇÀÌ Á¾·áÇÒ ¶§±îÁö ¼Ò¸êµÇÁö ¾Ê°í À¯ÁöµË´Ï´Ù.)
ºó °´Ã¼°¡ »ý¼ºµÈ ÀÌÈÄ ¾î¶² ÆäÀÌÁö¿¡¼µµ ÂüÁ¶µÉ ¼ö ¾øÀ» ¶§ ÀÚµ¿À¸·Î ¼Ò¸êµË´Ï´Ù.
Scope ¼Ó¼ºÀº ±âº» °ªÀº pageÀÔ´Ï´Ù.
scope ¼Ó¼º¿¡´Â 4°³ÀÇ °ªÀ» ÁöÁ¤ÇØ ÁÙ ¼ö Àִµ¥ °¢°¢ÀÇ °ª¿¡ ´ëÇØ¼ Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°½À´Ï´Ù.
page : ÀÚ¹Ù ºóÁî°¡ ÇöÀçÀÇ JSP ÆäÀÌÁö ³»¿¡¼¸¸ »ç¿ë °¡´ÉÇϵµ·Ï ¼³Á¤ÇÒ ¶§
±âº» °ªÀ̹ǷΠƯº°È÷ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÀÌ ¿É¼ÇÀÌ Àû¿ëµË´Ï´Ù.
ºó °´Ã¼ÀÇ ¼ö¸íÀº ÇÑ ÆäÀÌÁö ³»¿¡¼¸¸ À¯ÁöµË´Ï´Ù.
Page ¿µ¿ªÀ¸·Î »ý¼ºµÈ °´Ã¼´Â ¿äûµÈ ÆäÀÌÁö ³»¿¡¼¸¸ À¯È¿ÇÕ´Ï´Ù.
°°Àº ÆäÀÌÁö¸¦ ¿äÃ»ÇØµµ »õ·Î¿î ºó °´Ã¼°¡ »ý¼ºµË´Ï´Ù.
ÆäÀÌÁöÀÇ ½ÇÇà Á¾·á¿Í ÇÔ²² ºó °´Ã¼´Â ¼Ò¸êµË´Ï´Ù.
¸Å ÆäÀÌÁö¸¶´Ù »õ·Î »ý¼ºµÇ¹Ç·Î °´Ã¼°¡ »ý¼ºÀÚÀÇ ÃʱâÈ ºÎºÐÀ» Ç×»ó ½ÇÇàÇÕ´Ï´Ù.
Page¿µ¿ªÀº ÇÑ ÆäÀÌÁö¿¡¼¸¸ À¯È¿ÇϹǷΠ<jsp:include> ű׳ª <jsp:forward> ű׷ΠÆ÷ÇÔµÈ ÆäÀÌÁö¿¡¼
<jsp:useBean> ű״ ÀÌ¹Ì ¸¸µé¾îÁø ºó °´Ã¼¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó °°Àº id ¼Ó¼º°ªÀ» °¡Áø »õ·Î¿î °´Ã¼¸¦ »ý¼ºÇÏ°Ô µË´Ï´Ù.
ÇÑ <jsp:include> ű׿¡¼ »ý¼ºÇÑ ºó °´Ã¼´Â ¿ø ÆäÀÌÁö¿¡¼ ÂüÁ¶µÉ ¼ö ¾ø½À´Ï´Ù.
Page ¿µ¿ªÀÇ ºó °´Ã¼´Â jsp ÆäÀÌÁö°¡ ºÒ¸± ¶§¸¶´Ù ¸ÕÀú »ý¼ºµÈ ºó °´Ã¼ÀÇ »óŰ¡ ÇÊ¿äÇÏÁö ¾Ê°í »õ·Î »ý¼ºµÇ¾îµµ µÇ´Â °æ¿ì¿¡ ÀûÇÕÇÏ´Ù.
request : JSP ÆäÀÌÁö´Â jsp:forward, jsp:include ű׸¦ ÀÌ¿ëÇØ¼ ´Ù¸¥ JSP ÆäÀÌÁö¿Í ÇÔ²² »ç¿ëÇÒ ¼ö Àִµ¥ ÀÌ °ªÀ¸·Î ¹üÀ§¸¦ ÁöÁ¤Çϸé ÇöÀçÀÇ JSP ÆäÀÌÁö¿Í ¿¬°áµÇ¾î ÀÖ´Â ¸ðµç JSP ÆäÀÌÁö±îÁö ¿µÇâÀ» ¹ÌĨ´Ï´Ù.
ÀÌ·² °æ¿ì ÀÌ ÀÚ¹Ù ºóÁîÀÇ id´Â ´Ù¸¥ ÆäÀÌÁö¿¡ µ¿ÀÏÇÑ À̸§ÀÇ id°¡ Á¸ÀçÇØ¼´Â ¾ÈµË´Ï´Ù.
¹Ý´ë·Î page ¼Ó¼ºÀ¸·Î ÁöÁ¤µÇ¾î ÀÖÀ» °æ¿ì¿¡´Â ÇöÀç ÆäÀÌÁö¿¡ jsp:forward¿Í jsp:include°¡ ÀÖÀ» Áö¶óµµ ÇØ´ç ÆäÀÌÁö±îÁö ¿µÇâÀ» ¹ÌÄ¡Áö´Â ¾Ê½À´Ï´Ù. Áï, ÇØ´ç ÆäÀÌÁö°¡ ¿ø ÆäÀÌÁö¿¡¼ ÂüÁ¶ÇÏ´Â ÀÚ¹Ù ºóÁ ÂüÁ¶ÇÏÁö ¸øÇÕ´Ï´Ù.
¶ÇÇÑ request ¿µ¿ªÀ¸·Î »ý¼ºµÈ ºó °´Ã¼¸¦ request °´Ã¼¿¡ ÀúÀåÇÏ¿© request °´Ã¼¿¡¼ ã¾Æ¼ ÂüÁ¶°¡ °¡´ÉÇÕ´Ï´Ù.
<jsp:include> ÅÂ±×¿Í <jsp:forward>ű׸¦ »ç¿ëÇÏ´Â °æ¿ì °°Àº request °´Ã¼¸¦ »ç¿ëÇÏ°Ô µË´Ï´Ù.
session : ÀÌ °ªÀ¸·Î ¹üÀ§¸¦ ÁöÁ¤ÇØ ³õÀ¸¸é ¼¼¼Ç¿¡ À¯È¿ÇÒ ¶§±îÁö ÀÚ¹Ù ºóÁîÀÇ °´Ã¼°¡ À¯È¿ÇÕ´Ï´Ù.
¼¼¼ÇÀÌ À¯ÁöµÇ´Â µ¿¾È °°Àº ¼¼¼Ç¿¡¼ È£ÃâµÇ´Â ¸ðµç ÆäÀÌÁö¿¡¼ ºó °´Ã¼´Â ¼Ò¸êµÇÁö ¾Ê°í À¯ÁöµË´Ï´Ù.
Session ¿µ¿ªÀ¸·Î »ý¼ºµÈ ºóÀº session °´Ã¼¿¡ ÀúÀåµË´Ï´Ù.
°¢ »ç¿ëÀÚ¿¡ ´ëÇÏ¿© µ¶¸³ÀûÀ¸·Î »ý¼ºµÇ´Â session °´Ã¼´Â ¼¼¼ÇÀÌ Á¾·áµÉ ¶§±îÁö È£ÃâµÇ´Â ¸ðµç ÆäÀÌÁö¿¡¼ id ¼Ó¼ºÀ¸·Î ±¸ºÐµÇ´Â °´Ã¼µéÀ» À¯ÁöÇÏ°í »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù.
ÇѰ¡Áö ÁÖÀÇÇÒ Á¡Àº page Áö½Ã¾î¿¡¼ session ¼Ó¼ºÀ» false·Î ÇØ ³õ¾ÒÀ» °æ¿ì¿¡´Â ÀÌ ÀÚ¹Ù ºóÁî °´Ã¼´Â »ç¿ëÇÒ ¼ö ¾ø°Ô µË´Ï´Ù.
page, request scope ¼Ó¼ºÀ¸·Î »ý¼ºµÈ ºóÀº ºê¶ó¿ìÀúÀÇ ¿äû¿¡ ´ëÇÏ¿© °á°ú¸¦ »ý¼ºÇÏ¿© µ¹·ÁÁØ ´ÙÀ½¿¡´Â ¼Ò¸êµË´Ï´Ù.
application : ÀÌ °ªÀº °¡Àå ±¤¹üÀ§ÇÑ ¹üÀ§¸¦ °®´Â °ªÀÔ´Ï´Ù. ÀÌ °ªÀ¸·Î ¹üÀ§¸¦ ÁöÁ¤ÇÏ¸é ¸ðµç JSP ÆäÀÌÁö¿¡¼ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ÀÚ¹Ù ºóÁî °´Ã¼´Â ¼ºí¸´/JSP ¿£ÁøÀ» Á¤Áö½ÃŰ°Å³ª ´Ù½Ã ½ÃÀÛ½Ãų ¶§±îÁö °è¼Ó »ì¾Æ ÀÖ°Ô µË´Ï´Ù.
Áï, ¼ºí¸´/JSP ¿£Áø¿¡ ÀÇÇØ ¼Ò¸êµÇÁö ¾Ê°í À¯ÁöµË´Ï´Ù.
application scope ¼Ó¼ºÀ¸·Î »ý¼ºµÈ ºóÀº application ³»À尴ü¿¡ ÀúÀåµÇ¾î °°Àº À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» »ç¿ëÇÏ´Â ¸ðµç »ç¿ëÀÚ¿¡°Ô »ç¿ëµÇ¾î Áú ¼ö ÀÖ°Ô µË´Ï´Ù. ÀÌ ¿É¼ÇÀº °ÅÀÇ »ç¿ëµÇÁö ¾Ê½À´Ï´Ù.
3. <%@ include file="»ó´ë°æ·ÎÆÄÀϸí" %> °ú <jsp:include page="»ó´ë°æ·ÎÆÄÀϸí" /> ÀÇ Á¤È®ÇÑ Â÷ÀÌ´Â ?
Include µð·ºÆ¼ºêÀÇ °æ¿ì Æ÷ÇԵǴ ÆäÀÌÁö¿Í ÇöÀç jsp ÆäÀÌÁö°¡ ÇÕÃÄÁ®¼ ÇϳªÀÇ jsp ÆäÀÌÁö(ÀÌ´Â °ð ÇÕÃÄÁø jspÆäÀÌÁö°¡ ¼ºí¸´À¸·Î º¯È¯µÊÀ» ÀǹÌ)°¡ µÇ´Â ¹Ý¸é¿¡ <jsp:include>¾×¼Ç ű׷ΠÆ÷ÇԵǴ ÆäÀÌÁö¿Í Æ÷ÇÔÇÏ´Â ÆäÀÌÁö°¡ ÇÕÃÄÁöÁö ¾Ê°í ±×´ë·Î Á¸ÀçÇÏ°Ô µË´Ï´Ù.
- ´ÙÀ½ °Á : JSP ¿¹Á¦
- ÀÌÀü °Á : ¼ºí¸´ ¿¹Á¦
