[JSP 일정 시간이 지나면 자동으로 폼(Form) 전송하기]
제목을 어떻게 붙혀야 되는지 몰라서 자동 폼 전송이라고 했습니다만, 페이지상에서 작업이 끝나면 다른 URL로 처리 결과값을 넘겨주는 짧은 예제를 다룰 것입니다. 제 경험으로는 서로 다른 웹사이트를 가지고 있는 두개의 회사가 제휴를 맺고 회원간의 이벤트 참여 정보등을 웹상으로 교환할때나, 특정 서비스를 자신의 웹사이트에 붙히고, 처리 결과 값을 서비스 주체에 넘겨줘야 할때에 주로 사용했었 습니다. 물론 데이터가 다른 URL로 전송되는 만큼 암호화는 필수 입니다. 여기서는 암호화, 복호화에 대해서는 소개하지 않습니다.
한가지 더 말씀드리자면 서로 다른 도메인에 속해있는 URL로 데이터를 주고 받아야 하는만큼 서버 사이드(Server Side) 언어 제한적이지도 않습니다. 간단히 말씀드리면 JSP로 전송된 데이터를 PHP나 ASP로 받을 수 있고, ASP로 전송된 데이터를 JSP또는 PHP 페이지에서 받을 수도 있다는 말씀입니다.
1. 자동으로 폼(Form) 전송하기
<% String OrderNum = request.getParameter("OrderNum"); //넘겨야 할 데이터 OrderNum %> <form name="sendForm" method="post"> <input type="hidden" name="OrderNum" value="<%=OrderNum%>"> </form> <script type="text/javascript"> <!-- document.sendForm.action="http://www.webmadang.net/request.php"; // OrderNum 을 받을 페이지 document.sendForm.submit(); //--> </script> | |
위의 예제에서는 OrderNum이라는 데이터를 http://www.webmadang.net/request.php로 바로 전송을 합니다. 그전에 OrderNum을 처리한 페이지가 있을 것입니다. 그런데 테스트를 해보시면 알겠지만 전송 후 페이지는 http://www.webmadang.net/request.php로 바뀌게 됩니다. submit()이 되었기 때문입니다.
2. 자동으로 폼(Form)의 데이터만 전송하고 현재 페이지 유지하기
<% String OrderNum = request.getParameter("OrderNum"); //넘겨야 할 데이터 OrderNum %> <form name="sendForm" method="post"> <input type="hidden" name="OrderNum" value="<%=OrderNum%>"> </form> <iframe name="hframe" style="display:none;"></iframe> <!--숨겨진 iframe을 만든다--> <script type="text/javascript"> <!-- document.sendForm.target="hframe"; //타겟을 iframe으로 한다 document.sendForm.action="http://www.webmadang.net/request.php"; document.sendForm.submit(); //--> </script> | |
위의 예제에서는 폼(form) 전송 후 페이지가 대상(destination) 페이지로 바뀌는 것을 보여주지 않기 위해서, iframe이 사용되었습니다. 그 외에는 특별히 달라진 것이 없습니다.
3. 자동으로 폼(Form)의 데이터를 일정 시간이 지나면 전송하기
<% String OrderNum = request.getParameter("OrderNum"); //넘겨야 할 데이터 OrderNum %> <form name="sendForm" method="post"> <input type="hidden" name="OrderNum" value="<%=OrderNum%>"> </form> <iframe name="hframe" style="display:none;"></iframe> <!--숨겨진 iframe을 만든다--> <script type="text/javascript"> <!-- document.sendForm.target="hframe"; //타겟을 iframe으로 한다 document.sendForm.action="http://www.webmadang.net/request.php"; setTimeout("document.sendForm.submit()",5000); //--> </script> | |
위의 예제에서는 submit() 부분을 자바스크립트의 setTimeout 함수를 이용해서 5초간 지연시키고 있습니다. 여타 다른 밀리세컨드 함수와 마찬가지로 setTimeout 함수도 1000이 1초를 뜻합니다.
※ 예제에는 JSP가 사용되었지만, JSP 예제라 보기에 좀 민망합니다. PHP,ASP 모두 같은 방식으로 적용되는 만큼 자바스크립트 예제가 맞겠네요. .
| |
|
|