Session Object

 

HTTP의 특징은 “상태가 없다” 입니다. 그러니까 Web Server와의 통신 후에 connection을 유지 하지 않기에 다시 통신할 때에 이전에 상태를 알 수 없습니다. 그래서 쿠키를 사용하여 사용자의 Client에 정보를 저장하여 특정 정보를 저장하여 이전 정보를 보관한다.

 

그런데 역시 문제는 client에만 정보를 저장한다는 것이 문제입니다.  Server쪽에도 해당 정보를 저장하면 좀 더 안전하게 사용자의 정보를 다룰 수 있겠지요.  이와 같은 역할을 하는 것이 session 이라고 본인은 생각합니다.

일반적으로 쇼핑몰에서 물품 구매 프로세스에 Session을 많이 사용합니다.

너무 많은 seesion의 사용은 server에 부하를 줄 수 있습니다.

 

<html>

<body>

<font face=Arial>

<b><u>Implicit Object - Session</u></b><p>

<%

session.setMaxInactiveInterval(2*60);   // 2 min

%>

isNew() : <%= session.isNew() %><br>

getCreationTime : <%= session.getCreationTime() %><br>

getLastAccessedTime() : <%= session.getLastAccessedTime() %><br>

getId() : <%= session.getId() %><br>

getMaxInactiveInterval() : <%= session.getMaxInactiveInterval() %><p>

 

<%

             if(session.getAttribute("id") == null){

                           out.println("session setting<br>");

                           session.setAttribute("id","smson");

                           session.setAttribute("name","손상모");

             }

              for (java.util.Enumeration e = session.getAttributeNames() ; e.hasMoreElements() ;) {

                            String name = e.nextElement().toString();

                            out.println(name + ":"+session.getAttribute(name)+"<br>");

              }

%>

</font></body></html>

 

처음 session 생성시에는 isNew의 값이 true로 설정되고 다시 reload 시에는 false가 설정이 됩니다.  그리고 2분 후에 reload하면 다시 true로 설정하고 다시금 session을 설정하는 것을 볼 수 있을 것입니다.

 

Application Object

 

제가 처음 ASP를 공부할 때 IIS에서의 global.asa를 보고 역시 MS라고 생각했지요. 이유는 Web Application의 개념 때문이었습니다.

Web Application은 URL 각각에 따라 Script들이 묶인 단위이고 대부분의 Server들은 URL의 디렉토리별로 Application을 묶을 수 있습니다.  그리고 이와 같이 묶인 Application 별로 설정값을 공유한다는 것입니다.

 

http://www.ihelpers.co.kr/programming/index.jsp

http://www.ihelpers.co.kr/programming/right1.jsp

http://www.ihelpers.co.kr/programming/work/index.jsp

 

위에서는 programming으로 Application을 묶을 수 있겠군요. JSP에서는 Web Application Descriptor 파일을 사용하여 Application 그룹화를 사용할 수 있다고 하는군요. ( 아직은 본인도 잘 모름 )

 

<%@ page contentType="text/html;charset=euc-kr" %>

<html>

<body>

<font face=Arial>

<b><u>Implicit Object - Application</u></b><p>

 

Servlet API Version :

<%= application.getMajorVersion()%>.<%= application.getMinorVersion()%><br>

Container Version : <%= application.getServerInfo() %><br>

Context Root Directory : <%= application.getRealPath("/") %><br>

</font>

</body>

</html>

 

 

Reference Site

- http://www.jspschool.com

 

Reference Book

- Web Development with Java Server Pages. by Duane K. Fields & Mark A. Kolb ,곽용재편역 ; InfoBook, Manning

- 퍼펙트 JSP; 앙희석,표선영 저; 한빛미디어