7.Client to Server


  웹에서 브라우저에서 웹서버로 사용자의 반응에 따라 다양한 정보들이 올라가게 된다. 이때 정보가 전달되는 경로로는 HTML의 Form tag안에 기록된 값, Cookie정보, 기타 환경변수, URL정보등이 있다. 이러한 것들이 어떻게 브라우저에서 서버로 전달되는지, 또, SSJS에서 어떻게 가져와서 사용하는지 알아보자.

7.1 FORM Tag

  자 다음과 같은 Form tag가 있다고 하면, SSJS에서는 오른쪽과 같이 사용하면된다.

<form method="post" action="index.html">

 <input type=text name=uid>

</form>
<server>

write("uid is" + request.uid);

</server>


  * 앞에서도 설명한 것처럼 Client에서 올라오는 정보 중 form과 관련된 정보는 request의 속성으로 저장된다. 또한 form안에 저장된 모든 입력값들이 서버로 올라가면서 request object에 저장된다.(주의 : file 속성 즉, file upload는 지원하지 않으므로, 직접 구현해야 한다.)

    request   form에 의해 서버로 전달되는 값의 형태는 "uid=xxx"와 같은 모양을 띄고 있는데, 서버쪽에서는 uid가 텍스트 박스였는지, radio버튼이었는지 전혀 알 수 없다. 즉, 전송되는 정보는 브라우저에 모습이 어떻게 사용되었는지 하고는 아무런 관계도 없다. 실제로 다음과 같은 짓도 가능하며,

    <input type=text name=uid value=xxx>
    <textarea name=uid>yyy</textarea>
      서버로 전달될 때에는 "uid=xxx", "uid=yyy"라고 전달된다.즉 브라우저에서 form tag안에 name은 중복해서 실행해도 아무런 문제가 없다. 이때 문제가 되는 것은 과연 어는 uid가 텍스트 박스의 입력값인지 구분할 수 없다는 점이다. 이러한 이유 때문에, name에 각각 다른 값을 쓰는 것 뿐이다.


  SELECT의 HTML속성중에 MULTIPLE이라는 속성을 사용하게 되면, 여러개를 선택할 수 있다. 즉, 다음과 같은 형태일 경우 디폴트로 선택했을 때, 서버에는 어떻게 전달될까?

<select name=sel multiple>
   <option selected>1    <option>2
   <option selected>3    <option selected>4
</select>


  앞에서 설명한 것처럼 여러 이름이 올라간다. 즉, "sel=1", "sel=3", "sel=4"와 같은 정보들이 올라오게 되는 것이다. request.sel이라고 쓰면 무슨 값이 찍힐까? 간단하다 sel=4가 맨 마지막에 들어오기 때문에 "4"가 된다.

  이렇게 같은 이름으로 여러개가 전송되어 오는 경우를 대비해서 다음과 같은 두가지 함수를 추가로 제공하고 있다.

getOptionValue(name, idx) 해당 이름을 가진 정보의 idx번째
getOptionValueCount(name)해당 이름을 가진 정보가 몇개인지


  위의 select예제의 디폴트 입력의 경우 getOptionValueCount("sel") 의 값은 3이되고, getOptionValue("sel",0) 의 값은 sel=1에 의해 1이 된다.

- Last Update : 2001.7.5 by Deadfire(http://www.deadfire.net)

LiveWire 강좌
LiveWire란?
최초예제/동작원리
실행환경 준비
컴파일 및 실행
SSJS의 기본
     - Function
     - Classes/Objects
     - 사용 Tag
     - SSJS의 처리과정
기본 함수
Client To Server
     - FORM Tag
     - URL
Server To Client
     - FORM Tag
     - Cookie
Session
Client
Project/Server
File
Database
     - Database고려사항
     - Function/예제
기타
     - Stored Procedure
     - 외부함수호출
마치며

Copyright ⓒ 1997 ~, Deadfire Program Master