Site Search :
Standard Enterprise XML Methodology Pattern Setting Tunning Other
Article Contributors
GuestBook
Javapattern Maven
XSourceGen Dev
JetSpeed Test
JLook Image
jLook Family Site


URL Rewriting을 이용한 session tracking
 
cookie나 session 이 지원되지않을 경우 server와 client사이에서 일정한 session 을 유지하기 위한 URL Rewriting방법 ( 2003/03/31 ) 614
Written by ienvyou - 최지웅
2 of 2
 

3. URL Rewriting 시 사용되는 Method.

HttpServletResponse Interface 의

String encodeURL(java.lang.String url)

이 method의 역할은 사용자에게 전달 되어 지는 URL정보에 초기에 접속했을때의 만들어진 session id를 URL정보에 포함시켜 client Browser로 보내게 됩니다.

그렇게 함으로서 매 접속시 새로운 session id가 만들어 져도 초기 login시에 만들어지는 session id를 그대로 logout시가지 사용하게 됩니다.

4. URL Rewriting 를 이용한 예제.

source: booklist2.jsp

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<p>Book List </p>
<table border="1" width="183">
<tr>
<td height="50" width="48"><img src="book1.jpg" width="45" height="60"></td>
<td height="50" width="119"><a href=<%=response.encodeURL("Cart.jsp?content=book1")%>>구매</a></td>
</tr>
<tr>
<td height="48" width="48"><img src="book2.jpg" width="48" height="60"></td>
<td height="48" width="119"><a href=<%=response.encodeURL("Cart.jsp?content=book2")%>>구매</a></td>
</tr>
</table>
<p>&nbsp; </p>
</body>
</html>


위의 source처럼 Cart.jsp에는 아무 변화가 없고 처음 사용자에게 보여지는 부분에서 링크 되어지는 부분에 reponse.encodeURL("URL")정보를 사용하게 됩니다.

구매 라는 링크 단어에는 다음과 같은 URL정보가 나타나게됩니다.

http://localhsot/Cart.jsp;sessionid=XXXXXXXX?content=book1

 

5. Form 을 이용한 경우

source:booklistform.jsp

<html>
<head>
<title>Untitled Document</title>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<p>Book List </p>
<form name="form" method="post" action="<%=response.encodeURL("Cart.jsp")%>">
<table border="1" width="183">
<tr>
<td height="50" width="48"><img src="book1.jpg" width="45" height="60"></td>
<td height="50" width="119">
<input type="submit" name="content" value="book1" >
</td>
</tr>
<tr>
<td height="48" width="48"><img src="book2.jpg" width="48" height="60"></td>
<td height="48" width="119">
<input type="submit" name="content" value="book2">
</td>
</tr>
</table>
</form>
<p>&nbsp; </p>
</body>
</html>

이렇게 form을 이용할 경우 는 action부분에 response.encodeURL("Cart.jsp")을 이용하면 이벤트 발생시 해당 session id를 이용하여 처리하게 됩니다.

전체 source: url.zip

최근 만들어지는 많은 전자 상거래 싸이트를 유심히 보시면 이렇게 URL Rewriting을 이용한 싸이트들이 많아 지고 있습니다. 기본적으로 사용자는 어떤 상황에서도 전자 상거래가 이루어 져야 한다는 개념이죠 즉 PC뿐만이 아니라 앞으로 mobile이나 여러 platform을 이용하게 된다면 항상 사용자는 전자 상거래를 위한 모든 준비가 되어 있는 것은 아닙니다.

단 이경우 browser상에 사용자 session id 가 노출 되기 때문에 사용자가 login할때의 시간을 초단위까지 임시로 저장해 놓고 다른 사용자가 접근 하는 것을 막는 방법을 채택한다든지 여러 부가적인 방법또한 추가 시켜야 합니다.

 
1 2
References
 
Copyright ⓒ 2003 www.javapattern.info & www.jlook.com, an jLOOK co.,LTD