¼Ò¼³°°ÀºJSP1ºÎ  5Àå Core of JSP  11 ³»À尴ü session  

 

11 ³»À尴ü session

 

 sessionÀÇ ¿ø·¡ Ŭ·¡½ºÇüÀº HttpSession ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. ÀÌ session°´Ã¼´Â »ç¿ëÀÚ°¡ Çϳª ÀÌ»óÀÇ ÆäÀÌÁö¸¦ ¿ä±¸ Çϰųª, ´Ù¸¥ »çÀÌÆ®·ÎÀÇ ¹æ¹®, ¶Ç´Â ÀúÀåµÈ Á¤º¸¸¦ Á¢±ÙÇÒ ¶§ »ç¿ëÀÚ¸¦ È®ÀÎÇØÁÖ´Â ±â´ÉÀ» ÇÕ´Ï´Ù.

 

 ¿ø·¡ Http´Â ºñ¿¬°á ÁöÇ⼺(stateless) Áï, Çѹø Á¢¼ÓÇÑ ÈÄ ¿¬°áÀÌ À¯ÁöµÇÁö ¾Ê°í ²÷¾îÁö±â ¶§¹®¿¡ Á¢¼ÓÇÑ Å¬¶óÀÌ¾ðÆ®³ª, »ç¿ëÀÚ¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áö°í ÀÖÁö ¾Ê½À´Ï´Ù. ÀÌ¿Í ¹Ý´ëµÇ´Â °³³äÀÌ ¿¬°áÁöÇ⼺(stateful)À¸·Î Çѹø Á¢¼ÓÇÏ¸é ±× Á¢¼ÓÀÌ °è¼Ó À¯ÁöµÇ´Â °ÍÀ» ¸»ÇÕ´Ï´Ù. statelessÇÑ ¿¬°á»óŸ¦ statefulÇÏ°Ô ¸¸µé¾îÁÖ´Â ¹æ¹ýÁßÀÇ Çϳª°¡ ¼¼¼ÇÀÔ´Ï´Ù.

 

¼¼¼ÇÀº ¼­¹ö°¡ °¡Áö°í ÀÖ´Â ÀÏÁ¾ÀÇ Ãâ¼®ºÎ¶ó°í »ý°¢ÇÏ¸é µË´Ï´Ù. HTTP¼­¹ö°¡ HTTPŬ¶óÀÌ¾ðÆ®³ª »ç¿ëÀÚµéÀ» ±¸ºÐÇØ¾ß ÇÒ °æ¿ì¿¡´Â ±×µéÀ» ±¸ºÐÇÒ ¼ö ÀÖ´Â °¢°¢ ´Ù¸¥ À̸§ÀÌ Ç¥½ÃµÈ À̸§Ç¥¸¦ ´Þ¾ÆÁ־ ±× Ãâ¼®ºÎ¿Í À̸§Ç¥¸¦ °¡Áö°í »ó´ë¹æÀÇ Á¤º¸¸¦ À¯ÁöÇÏ´Â °ÍÀÔ´Ï´Ù. ¼¼¼ÇÀº ÁöÁ¤µÈ ½Ã°£ µ¿¾ÈÀ̳ª, »ç¿ëÀÚ°¡ ÆäÀÌÁö¸¦ °è¼Ó ¿ä±¸ÇÏ´Â µ¿¾È¿¡¸¸ Á¸ÀçÇÕ´Ï´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì¿¡´Â ¼¼¼ÇÀº ¼Ò¸êµÇ¸ç statelessÇÑ »óÅ·Πµ¹¾Æ°¡°Ô µË´Ï´Ù.

 

JSP ³»Àå °´Ã¼ÀÎ ¼¼¼ÇÀº ´ÙÀ½°ú °°ÀÌ ¾ò¾îÁý´Ï´Ù.

 

n         session = pageContext.getSession();

 

 ±×¸®°í ¼¼¼ÇID¿Í ID¿¡ µû¸¥ °ªÀ» ¾ò´Â ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.

 

n         session.getID();

n         session.getValue(¡°ID¡±);.

 

 ¿©±â¼­´Â ÀÌ·¸°Ô ¼¼¼ÇÀÇ ÀϹÝÀûÀÎ Àǹ̸¸ »ìÆìº¸°Ú½À´Ï´Ù. ±×¸®°í ´ÙÀ½ Àå¿¡¼­ ÄíŰ¿Í ÇÔ²² ´Ù¸¥ ½Ã°¢¿¡¼­ ÀÚ¼¼È÷ ¾Ë¾Æº¸°Ô µÇ´Ï ±âº»ÀûÀÎ Àǹ̸¸ ¾Ë°í ³Ñ¾î °¡½Ê½Ã¿ä. ´ÙÀ½Àº ¼¼¼Ç À¯È¿½Ã°£À» ¼³Á¤Çϰí, ¼¼¼ÇÀÇ Á¤º¸¸¦ °¡Á®¿À´Â °Í°ú °°Àº ÀÛ¾÷À» ÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù.

 

SessionTest.jsp

¼¼¼ÇÀ» Å×½ºÆ®ÇÑ ¿¹Á¦

<%@ page contentType="text/html;charset=EUC-KR" %>
<html>
<body>
<% session.setMaxInactiveInterval(
60); %>
<h3>Session Á¤º¸ </h3>
isNew():<%=session.isNew()%><br>
¼¼¼ÇID:<%=session.getId() %><br>
¼¼¼Ç»ý¼º½Ã°£:<%=
new java.util.Date(session.getCreationTime()).toString() %><br>
¼¼¼Ç¸¶Áö¸·Á¢¼Ó½Ã°£:<%=
new java.util.Date(session.getLastAccessedTime()).toString() %><br>
¼¼¼ÇActive½Ã°£:<%=session.getMaxInactiveInterval() %>sec 
</body>
</html>

 

°á°ú¸¦ º¸½Ã¸é, ¼¼¼Ç¿¡ °üÇÑ ´Ù¾çÇÑ Á¤º¸°¡ Ãâ·ÂµÇ¾úÀ½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù.

 

SetMaxInactiveInterval() Àº ¼¼¼ÇÀ» À¯ÁöÇÒ ½Ã°£À» ¼³Á¤ÇÏ´Â ¸Þ¼­µåÀÔ´Ï´Ù. ÀÌ ½Ã°£ÀÌ Áö³ª¸é ¼¼¼ÇÀº ÀÚµ¿À¸·Î Á¾·áµË´Ï´Ù. ´ÜÀ§´Â secÀÔ´Ï´Ù. ¿©±â¼­´Â 1ºÐÀ» ¼³Á¤Çß±º¿ä. ¼¼¼ÇÀ¯Áö½Ã°£À» 5ºÐÀ¸·Î ¼³Á¤ÇϽ÷Á¸é 1 ´ë½Å¿¡ 5¸¦ ³ÖÀ¸¸é µÇ°ÚÁö¿ä.

 

n        <% session.setMaxInactiveInterval(1*60); %>

 

isNew()´Â ¼¼¼ÇÀÌ Ã³À½ »ý¼ºµÇ¾úÀ» °æ¿ì¿£ true¸¦, ÀÌ¹Ì »ý¼ºµÇ¾î ÀÖ¾úÀ» °æ¿ì¿£ false¸¦ ¹ÝȯÇÕ´Ï´Ù. ÃÖÃÊÀÇ ¿äû½Ã¿¡´Â true¸¦ ¹ÝȯÇÏÁö¸¸ ¼¼¼Ç À¯Áö ½Ã°£ ³»¿¡ Àç¿äû½Ã false¸¦ ¹ÝȯÇÕ´Ï´Ù. ¼¼¼Ç À¯Áö ½Ã°£ÀÌ Áö³­ ÈÄ ¿äûÀ» ÇÑ´Ù¸é ´Ù½Ã true¸¦ ¹ÝȯÇϰÚÁÒ.

 

n        <%=session.isNew()%>

 

getId()´Â ÀÌ ¼¼¼Ç¿¡ ÇÒ´çµÈ À¯ÀÏÇÑ À̸§(ÀÏÁ¾ÀÇ id)À» ¹ÝÈ¯ÇØÁÖ´Â ¸Þ¼­µåÀÔ´Ï´Ù. ÀÌ À̸§Àº ¼­ºí¸´ÄÁÅ×À̳ʰ¡ ÇÒ´çÇØÁÝ´Ï´Ù.

 

n        <%=session.getId() %>

 

getCreationTime()Àº ¼¼¼ÇÀÌ Ã³À½ »ý¼ºµÈ ½Ã°£À» sec·Î ¹ÝÈ¯ÇØÁÖ´Â ¸Þ¼­µåÀÔ´Ï´Ù. Date°´Ã¼¸¦ »ç¿ëÇÏ¿© Ç¥Áؽ÷Πº¯È¯ÇÏ¿´½À´Ï´Ù.

 

n        <%=new java.util.Date(session.getCreationTime()).toString() %>

 

getLastAccessedTime()Àº ¼¼¼ÇÀÌ À¯ÁöµÇ´Â µ¿¾È ¸¶Áö¸·¿¡ Á¢¼ÓÇÑ ½Ã°£À» sec·Î ¹ÝÈ¯ÇØÁÖ°í ÀÖ½À´Ï´Ù. ¿ª½Ã Date°´Ã¼¸¦ »ç¿ëÇÏ¿© Ç¥Áؽ÷Πº¯È¯ÇÏ¿´½À´Ï´Ù. 

 

n        <%=new java.util.Date(session.getLastAccessedTime()).toString() %>

 

getMaxInactiveInterval()Àº ¼³Á¤µÈ ¼¼¼Ç À¯Áö ½Ã°£ °ªÀ» ºÒ·¯¿À´Â ¸Þ¼­µåÀÔ´Ï´Ù. Áï setMaxInactiveInterval()ÀÇ °ªÀ» ºÒ·¯¿À´Â °ÍÀ̰ÚÁö¿ä. ´ÜÀ§´Â ¿ª½Ã secÀÔ´Ï´Ù.

 

n        <%=session.getMaxInactiveInterval() %>

 

¼¼¼ÇÀÌ À¯ÁöµÇ´Â µ¿¾È¿¡ »õ·Î °íħÀ» ´­·¯ º¸¸é¼­ °¢°¢ÀÇ °ªÀ» ºñ±³Çغ¸¸é ¼¼¼ÇÀ» ÀÌÇØÇÏ´Â µ¥ ¸¹Àº µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù. Á»´õ ÀÚ¼¼ÇÑ ³»¿ëÀº 6Àå¿¡¼­ ´Ù·ç¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

HttpSessionÀÇ ¸â¹ö¸Þ¼­µå

 

public java.lang.Object getAttribute(java.lang.String name) : ÁöÁ¤µÈ À̸§ÀÇ ¼¼¼Ç¿¡ ¹­ÀÎ °´Ã¼¸¦ ¹ÝȯÇÕ´Ï´Ù.

public java.util.Enumeration getAttributeNames() : ¼¼¼Ç¿¡ ÁöÁ¤µÈ °´Ã¼ÀÇ À̸§À» ¿­°ÅÇÕ´Ï´Ù.

public long getCreationTime() : 1970. 1.1 GMT ºÎÅÍ ¼¼¼ÇÀÌ ¸¸µé¾îÁ³À» ¶§ ±îÁöÀÇ ½Ã°£À» ¹Ð¸®ÃÊÀÇ ´ÜÀ§·Î ¹ÝȯÇÕ´Ï´Ù.

public java.lang.String getId() : ¼¼¼Ç¿¡ ÁöÁ¤µÈ °íÀ¯ÇÑ À̸§À» ¹ÝȯÇÕ´Ï´Ù.

public long getCreationTime() : ¼¼¼ÇÀÌ Ã³À½ »ý¼ºµÈ ½Ã°£À» ¹Ð¸® ÃÊ·Î °è»êÇÏ¿© longÇü Á¤¼ö·Î ¸®ÅÏÇÕ´Ï´Ù. ±âÁØÀº 70³â1¿ù1ÀÏ 00½Ã 00ºÐ 00ÃÊÀÔ´Ï´Ù.

public long getLastAccessedTime() : Ŭ¶óÀÌ¾ðÆ® ¿äûÀÌ ¸¶Áö¸·À¸·Î ½ÃµµµÈ ½Ã°£À» ¹Ð¸®ÃÊ·Î ¹ÝȯÇÕ´Ï´Ù.

public int getMaxInactiveInterval() : Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸°¡ ¾øÀ» ¶§ ¼­¹ö°¡ ÇöÀçÀÇ ¼¼¼ÇÀ» ¾ðÁ¦±îÁö À¯ÁöÇÒÁö¸¦ Á¤¼ö·Î ¸®ÅÏÇÕ´Ï´Ù. À̶§ ±âº» µðÆúÆ® ¼¼¼Ç¸¶°¨½Ã°£Àº 30ºÐÀ¸·Î ÁöÁ¤µÇ¾î ÀÖ½À´Ï´Ù. ´ÜÀ§´Â secÀÔ´Ï´Ù.

public void invalidate() : ÇöÀçÀÇ ¼¼¼ÇÀ» Á¾·á½Ãŵ´Ï´Ù.

public boolean isNew() : ¼­¹öÃø¿¡¼­ »õ·Î¿î session°´Ã¼¸¦ »ý¼ºÇÏ°í ¾ÆÁ÷ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¼¼¼ÇID¸¦ ÇÒ´çÇÏÁö ¾ÊÀº °æ¿ì true¸¦ ¹ÝȯÇÏ°í ±âÁ¸ÀÇ ¼¼¼ÇÀÌ À¯ÁöµÇ°í ÀÖ´Â »óŶó¸é false¸¦ ¹ÝȯÇÕ´Ï´Ù.

public void setMaxInactiveInterval(int seconds) : ¼¼¼Ç À¯Áö ½Ã°£À» ¼³Á¤ÇÕ´Ï´Ù. ÀÌ ½Ã°£ÀÌ Áö³ª¸é ¼¼¼ÇÀº Á¾·áµË´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºJSP1ºÎ
ÀúÀÚ:ÃÖ¿µ°ü