SESSION API
1. wbGetSession
wbGetSession은 요청하는 사용자에게 현재 세션을 반환한다.
만약 세션이 없다면 새로운 세션을 만들어 반환한다. 세션이 올바르게 관리 되고 있다는 것을 확신하기 위해, 어떤 결과가 응답으로 가기전에 적어도 한번 이상 호출되어야 한다.
-
프로토타입
#include <wbapi.h> SESSION* wbGetSession(WBSVCINFO *rqst)
-
반환값
wbGetSession() 호출에 성공한 경우 유효한 세션(SESSION)을 반환한다.
-
예제
<getsession.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR = "/user2/haninho/webtob/ap", PORT = "7654" *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SvrType = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc = 2 getsession SVGNAME = webapg, MinProc = 1, MaxProc = 2 *SERVICE test SVrname= getsession *URI uri1 uri = "/svct/", SvrType = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일 (Config-file)을 컴파일한다.
$wscfl –i getsession.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 getsession.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { char *id; SESSION *session; session = wbGetSession(rqst); id = wbSessionGetId(session); wbPrint(rqst,”session id= %s”, id); wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c getsession
-
다음은 결과가 출력된 화면이다.
브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.
-
-
관련 함수
wbGetRequestedSessionId(), wbGetSessionId(), wbSessionGetValue(),wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbSessionGetCreationTime(), wbSessionGetValueNames()
2. wbSessionGetCreationTime
wbSessionGetCreationTime은 현재 세션이 만들어진 시간을 반환한다.
1970 GMT, 1월 1일 자정 이후의 시간을 밀리세컨드 단위로 표시하는 long 타입으로 세션이 만들어진 시간을 반환한다.
-
프로토타입
#include <wbapi.h> long wbSessionGetCreationTime(SESSION *session)
-
반환값
wbSessionGetCreationTime() 호출에 성공한 경우 세션이 만들어진 시간을 반환한다.
-
예제
<createtime.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR = "/user2/haninho/webtob/ap", PORT = "7654" *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SvrType = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc = 2 createtime SVGNAME = webapg, MinProc = 1, MaxProc = 2 *SERVICE test SVrname= createtime *URI uri1 uri = "/svct/", SvrType = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일 (Config-file)을 컴파일한다.
$wscfl –i createtime.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 createtime.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/atmi.h" #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { long time; SESSION *session; session = wbGetSession(rqst); time = wbSessionGetCreationTime(session); wbPrint(rqst, "create time = %ld<br>", time); wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c createtime
-
다음은 결과가 출력된 화면이다.
브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.
-
-
관련 함수
wbGetRequestedSessionId(), wbGetSession(), wbGetSessionId(), wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbSessionGetValue(), wbSessionGetValueNames()
3. wbSessionGetId
wbSessionGetId는 현재 세션에 할당된 문자열 식별자(ID)를 반환한다.
-
프로토타입
#include <wbapi.h> char* wbSessionGetId(SESSION *session)
-
반환값
wbSessionGetId() 호출에 성공한 경우에는 세션에 할당된 문자열을 반환한다.
-
예제
<getid.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR = "/user2/haninho/webtob/ap", PORT = "7654" *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SvrType = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc = 2 getid SVGNAME = webapg, MinProc = 1, MaxProc = 2 *SERVICE test SVrname= getid *URI uri1 uri = "/svct/", SvrType = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경화일(Config-file)을 컴파일한다.
$wscfl –i getid.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 getid.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { int ex; char *id; SESSION *session; session = wbGetSession(rqst); ex = wbSessionIsNew(session); id = wbSessionGetId(session); wbPrint(rqst, "session id = %s<br>", id); wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c getid
-
다음은 결과가 출력된 화면이다.
브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.
-
-
관련 함수
wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSession(), wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbSessionGetValue(), wbSessionGetValueNames()
4. wbSessionGetLastAccessedTime
wbSessionGetLastAccessedTime은 클라이언트가 마지막으로 요청을 보내는 시간을 반환한다.
1970 GMT, 1월 1일 자정 이후의 시간을 밀리세컨드 단위로 표시하는 long 타입으로 이 세션과 관련하여 클라이언트가 마지막으로 요청을 보낸 시간을 반환한다.
-
프로토타입
#include <wbapi.h> long wbSessionGetLastAccessedTime(SESSION *session)
-
반환값
wbSessionGetlastAccessedTime() 호출에 성공한 경우에는 클라이언트가 마지막으로 요청을 보낸 시간을 반환한다.
-
예제
<lasttime.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR = "/user2/haninho/webtob/ap", PORT = "7654" *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SvrType = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc = 2 lasttime SVGNAME = webapg, MinProc = 1, MaxProc = 2 *SERVICE test SVrname= lasttime *URI uri1 uri = "/svct/", SvrType = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일(Config-file)을 컴파일한다.
$wscfl –i lasttime.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 lasttime.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { long last; SESSION *session; session = wbGetSession(rqst); last = wbSessionGetLastAccessedTime(session); wbPrint(rqst, "session last access time = %ld<br>", last); wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c lasttime
-
다음은 결과가 출력된 화면이다.
브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.
-
-
관련 함수
wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSessionId(), wbGetSession(), wbSessionGetMaxInactiveInterval(), wbSessionGetValue(), wbSessionGetValueNames()
5. wbSessionGetValue
wbSessionGetValue는 지정한 이름의 값을 세션에서 찾아 반환한다.
-
프로토타입
#include <wbapi.h> int wbSessionGetValue(SESSION *session, char *name, int *len)
-
반환값
지정한 이름의 값을 세션에서 찾아 반환한다. 만약 찾으려는 값의 이름이 없다면 NULL을 반환한다.
-
예제
<getvalue.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR = "/user2/haninho/webtob/ap", PORT = "7654" *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SvrType = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc = 2 getvalue SVGNAME = webapg, MinProc = 1, MaxProc = 2 *SERVICE test SVrname= getvalue *URI uri1 uri = "/svct/", SvrType = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일(Config-file)을 컴파일한다.
$wscfl –i getvalue.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 getvalue.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst){ int len; char *value, *value2; SESSION *session; SESSION *session1; SESSION *session2; session= wbGetSession(rqst); session1 = wbSessionSetValue(session, "name", "webtob",6); session2 = wbSessionSetValue(session1, "tel", "123-1234",8); value = wbSessionGetValue(session2 , "name",&len); value2 = wbSessionGetValue(session2 , "tel",&len); wbPrint(rqst, "session value = %s<br>", value); wbPrint(rqst, "session value = %s", value2); wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c getvalue
-
다음은 결과가 출력된 화면이다.
브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.
-
-
관련 함수
wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSessionId(), wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbGetSession(), wbSessionGetValueNames()
6. wbSessionGetValueNames
wbSessionGetValueNames는 현재 세션에 포함된 모든 값의 이름을 포함하는 배열을 반환한다.
-
프로토타입
#include <wbapi.h> char** wbSessionGetValueNames(SESSION *session, int *len)
-
반환값
세션에서 모든 값의 이름을 찾아서 반환한다. 만약 어떠한 값도 없다면 NULL을 반환한다.
-
예제
<valuename.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR = "/user2/haninho/webtob/ap", PORT = "7654" *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SvrType = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc = 2 valuename SVGNAME = webapg, MinProc = 1, MaxProc = 2 *SERVICE test SVrname= valuename *URI uri1 uri = "/svct/", SvrType = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일(Config-file)을 컴파일한다.
$wscfl –i valuename.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 valuename.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { char **na; int len; SESSION *session; SESSION *session1; SESSION *session2; session= wbGetSession(rqst); session1 = wbSessionSetValue(session, "name", "webtob",6); session2 = wbSessionSetValue(session1, "tel", "123-1234",8); na = wbSessionGetValueNames(session2,&len); wbPrint(rqst,"name1 = %s\n<br>",*na); wbPrint(rqst,"name2 = %s\n",*(na+1)); wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c valuename
-
다음은 결과가 출력된 화면이다.
브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.
-
-
관련 함수
wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSessionId(), wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbSessionGetValue(), wbGetSession()
7. wbSessionGetMaxInactiveInterval
wbSessionGetMaxInactiveInterval은 세션에 정해진 최대 inactive interval 시간을 초 단위로 얻는다. 기본값은 1800초로 30분이다.
-
프로토타입
#include <wbapi.h> int wbSessionGetMaxInactiveInterval(SESSION *session)
-
반환값
wbSessionGetMaxInactiveInterval() 호출에 성공한 경우 세션에 정해진 inactive interval 시간을 초 단위로 반환한다.
-
예제
<getinterval.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR = "/user2/haninho/webtob/ap", PORT = "7654" *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SvrType = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc = 2 getinterval SVGNAME = webapg, MinProc = 1, MaxProc = 2 *SERVICE test SVrname= getinterval *URI uri1 uri = "/svct/", SvrType = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일(Config-file)을 컴파일한다.
$wscfl –i getinterval.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 getinterval.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { int ex=0, interval, check; SESSION *session; session = wbGetSession(rqst); ex = wbSessionIsNew(session); interval = wbSessionGetMaxInactiveInterval(session); if(ex == 1) { wbPrint(rqst, "session inactive Interval = %d<br>", interval); } else { wbPrint(rqst," fail create session"); } check = wbSessionSetMaxInactiveInterval(session, 3000); interval = wbSessionGetMaxInactiveInterval(session); wbPrint(rqst, "session new inactive Interval = %d<br>", interval); wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c getinterval
-
다음은 결과가 출력된 화면이다.
브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.
-
-
관련 함수
wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSessionId(), wbSessionGetLastAccessedTime(), wbGetSession (), wbSessionGetValue(), wbSessionGetValueNames()
8. wbSessionSetMaxInactiveInterval
wbSessionSetMaxInactiveInterval은 세션에 정해진 최대 inactive interval 시간을 초 단위로 다시 설정한다. 기본값은 1800초로 30분이다.
-
프로토타입
#include <wbapi.h> int wbSessionSetMaxInactiveInterval(SESSION *session, int interval)
-
반환값
wbSessionSetMaxInactiveInterval() 호출에 성공한 경우는 1을 반환하고 실패할 경우에는 0을 반환한다.
-
예제
<setinterval.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR = "/user2/haninho/webtob/ap", PORT = "7654" *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SvrType = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc = 2 setinterval SVGNAME = webapg, MinProc = 1, MaxProc = 2 *SERVICE test SVrname= setinterval *URI uri1 uri = "/svct/", SvrType = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일(Config-file)을 컴파일한다.
$wscfl –i setinterval.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 setinterval.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { int ex=0, interval, check; SESSION *session; session = wbGetSession(rqst); ex = wbSessionIsNew(session); interval = wbSessionGetMaxInactiveInterval(session); if(ex == 1) { wbPrint(rqst, "session inactive Interval = %d<br>", interval); } else { wbPrint(rqst," fail create session"); } check = wbSessionSetMaxInactiveInterval(session, 3000); interval = wbSessionGetMaxInactiveInterval(session); wbPrint(rqst, "session new inactive Interval = %d<br>", interval); wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c setinterval
-
다음은 결과가 출력된 화면이다.
브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.
-
-
관련 함수
wbSessionSetValue()
9. wbSessionSetValue
wbSessionSetValue는 지정한 이름의 값을 세션에 저장한다. 만약 저장하려는 값의 이름이 있다면 교체된다.
-
프로토타입
#include <wbapi.h> SESSION* wbSessionSetValue(SESSION *session, char *name, int len)
-
반환값
지정한 이름의 값이 저장된 세션이 반환된다.
-
예제
<setvalue.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR = "/user2/haninho/webtob/ap", PORT = "7654" *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SvrType = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc = 2 setvalue SVGNAME = webapg, MinProc = 1, MaxProc = 2 *SERVICE test SVrname= setvalue *URI uri1 uri = "/svct/", SvrType = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일(Config-file)을 컴파일한다.
$wscfl –i setvalue.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 setvalue.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { int len; char *value, *value2; SESSION *session; SESSION *session1; SESSION *session2; session= wbGetSession(rqst); session1 = wbSessionSetValue(session, "name", "webtob",6); session2 = wbSessionSetValue(session1, "tel", "123-1234",8); value = wbSessionGetValue(session2 , "name",&len); value2 = wbSessionGetValue(session2 , "tel",&len); wbPrint(rqst, "session value = %s<br>", value); wbPrint(rqst, "session value = %s", value2); wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c setvalue
-
다음은 결과가 출력된 화면이다.
브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.
-
-
관련 함수
wbSessionSetMaxInactiveInterval()
10. wbSessionRemoveValue
wbSessionRemoveValue는 세션에 저장된 값을 제거한다. 만약 인자 name으로 저장된 값이 없다면 아무일도 하지 않는다.
-
프로토타입
#include <wbapi.h> int wbSessionRemoveValue(SESSION *session, char *name)
-
반환값
wbSessionRemoveValue() 호출에 성공한 경우는 1을 실패한 경우에는 0을 반환한다.
-
예제
<remove.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR="/user2/haninho/webtob/ap", PORT = “7654” *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc =2 remove SVGNAME = webapg, MinProc = 1, MaxProc = 2, *SERVICE test SVRNAME = remove *URI wbapi Uri = "/svct/", Svrtype = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일(Config-file)을 컴파일한다.
$wscfl –i remove.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 remove.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { int ex, len; char *value, *value2; SESSION *session; SESSION *newsession; session = wbGetSession(rqst); newsession = wbSessionSetValue(session, "name", "webtob",7); value = wbSessionGetValue(newsession , "name",&len); wbPrint(rqst, "session value = %s<br>", value); ex = wbSessionRemoveValue(newsession, "name"); if(ex ==1) { wbPrint(rqst, "delete value<br>"); } value2 = wbSessionGetValue(newsession , "name", &len); if(value2 !=NULL) { wbPrint(rqst, "session value = %s<br>", value2); } else { wbPrint(rqst, "session value is null<br>"); } wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c remove
-
다음은 결과가 출력된 화면이다.
브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.
-
-
관련 함수
wbSessionGetValue(), wbSessionSetValue()
11. wbSessionIsNew
wbSessionIsNew는 세션이 새로운 것인지 아닌지 나타내는 값을 반환한다. 서버가 세션을 만들었으나, 클라이언트가 합쳐질 세션을 승인하지 않았다면 이 세션은 새로운 것이다.
-
프로토타입
#include <wbapi.h> int wbSessionIsNew(SESSION *session)
-
반환값
wbSessionIsNew() 호출 후 세션이 새로운 것이라면 1을 클라이언트가 이미 세션을 승인하였다면 0을 반환한다.
-
예제
<isnew.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR="/user2/haninho/webtob/ap", PORT = “7654” *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc =2 isnew SVGNAME = webapg, MinProc = 1, MaxProc = 2, *SERVICE test SVRNAME = isnew *URI wbapi Uri = "/svct/", Svrtype = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일(Config-file)을 컴파일한다.
$wscfl –i isnew.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 isnew.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { int ex=0; SESSION *session; session = wbGetSession(rqst); ex = wbSessionIsNew(session); if(ex == 1) { wbPrint(rqst, "new session"); } else { wbPrint(rqst," old session"); } wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c isnew
-
다음은 결과가 출력된 화면이다.
브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.
-
-
관련 함수
wbGetRequestedSessionId(), wbIsRequestedSessionIdValid(), wbSessionInvalidate()
12. wbSessionInvalidate
wbSessionInvalidate는 세션을 무효화시킨다.
-
프로토타입
#include <wbapi.h> int wbSessionInvalidate(SESSION *session)
-
반환값
wbSessionInvalidate() 호출에 성공한 경우는 1을 실패한 경우에는 0을 반환한다.
-
예제
<invalidate.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR="/user2/haninho/webtob/ap", PORT = “7654” *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc =2 invalidate SVGNAME = webapg, MinProc = 1, MaxProc = 2, *SERVICE test SVRNAME = invalidate test2 SVRNAME = invalidate *URI wbapi Uri = "/svct/", Svrtype = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일(Config-file)을 컴파일한다.
$wscfl –i invalidate.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 invalidate.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { char *id; SESSION *session; session = wbGetSession(rqst); id = wbSessionGetId(session); wbPrint(rqst, "<html><body>"); wbPrint(rqst, "<h1>session id is %s </h1><br>",id); wbPrint(rqst, "<form method=get action=/svct/test2>"); wbPrint(rqst, "<td><input type=submit value=suit></td>"); wbPrint(rqst, "</form>"); wbPrint(rqst, "</body></html>"); wbReturn(rqst, WBSUCCESS); } test2(WBSVCINFO *rqst) { int date; char *id; SESSION *session; session= wbGetSession(rqst); date = wbSessionInvalidate(session); id = wbSessionGetId(session); if(id !=NULL) { wbPrint(rqst, "<h1>session id is %s </h1><br>",id); } else { wbPrint(rqst, "<hi>Session id is Null</h1>"); } if(date == 1) { wbPrint(rqst, "session is invalidate=%d<br>",date); } else { wbPrint(rqst, "session is validate=%d<br>",date); } wbPrint(rqst, "<html><body>"); wbPrint(rqst, "<form method=get action=/svct/test2>"); wbPrint(rqst, "<td><input type=submit value=suit></td>"); wbPrint(rqst, "</form>"); wbPrint(rqst, "</body></html>"); wbReturn(rqst, WBSUCCESS);}
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c invalidate
-
다음은 결과가 출력된 화면이다.
[suit] 버튼을 클릭한다.
다시 [suit] 버튼을 클릭한다.
-
-
관련 함수
wbGetRequestedSessionId(), wbIsRequestedSessionIdValid(), wbSessionIsNew()
13. wbGetRequestedSessionId
wbGetRequestedSessionId는 사용자에 의해 명확해진 세션 ID를 반환한다.
이것은 실제의 세션 ID가 아닐 수도 있다. 가령, 요청이 일어나기 전에 세션이 끝났으면, 서버는 새로운 세션 ID를 만들고 대신에 새로 만든 것을 사용하기 때문이다.
-
프로토타입
#include <wbapi.h> char* wbGetRequestedSessionId(WBSVCINFO *rqst)
-
반환값
wbGetRequestedSessionId() 호출에 성공한 경우에는 세션 ID를 반환한다.
-
예제
<sessionid.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR="/user2/haninho/webtob/ap", PORT = “7654” *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc =2 sessionid SVGNAME = webapg, MinProc = 1, MaxProc = 2, *SERVICE test SVRNAME = sessionid test2 SVRNAME = sessionid *URI wbapi Uri = "/svct/", Svrtype = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일(Config-file)을 컴파일한다.
$wscfl –i sessionid.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 sessionid.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { char *id; SESSION *session; session = wbGetSession(rqst); id = wbSessionGetId(session); wbPrint(rqst, "<html><body>"); wbPrint(rqst, "<h1>session id is %s </h1><br>",id); wbPrint(rqst, "<html><body>"); wbPrint(rqst, "<form method=get action=/svct/test2>"); wbPrint(rqst, "<td><input type=submit value=suit></td>"); wbPrint(rqst, "</form>"); wbPrint(rqst, "</body></html>"); wbReturn(rqst, WBSUCCESS); } test2(WBSVCINFO *rqst) { char *sessionid; sessionid = wbGetRequestedSessionId(rqst); if(sessionid != NULL) { wbPrint(rqst, "sessionId is = %s<br>",sessionid); } else { wbPrint(rqst, "sessionId is NULL<br>"); } wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c sessionid
-
다음은 결과가 출력된 화면이다.
[suit] 버튼을 클릭한다.
다시 [suit] 버튼을 클릭한다.
-
-
관련 함수
wbSessionIsNew(), wbIsRequestedSessionIdValid(), wbSessionInvalidate()
14. wbIsRequestedSessionIdValid
wbIsRequestedSessionIdValid는 클라이언트에 의해 요청된 세션이 올바른 세션인지 확인한다.
클라이언트에 의해 요청된 세션이 올바른 세션이고, 따라서 현재 사용 중이라면 1을 리턴한다. 하지만 새로 만들어진 세션과 사용기간이 끝난 세션에 대해서는 0을 리턴한다.
-
프로토타입
#include <wbapi.h> int wbIsRequestedSessionIdValid(WBSVCINFO *rqst)
-
반환값
wbIsRequestedSessionIdVaild() 호출하는 경우 세션이 사용 중이면 1을, 사용이 끝났을 경우에는 0을 반환한다.
-
예제
<idvalid.m>
*DOMAIN webtob1 *NODE tmaxh1 WEBTOBDIR="/user2/haninho/webtob", SHMKEY = 54777, DOCROOT="/user2/haninho/webtob/docs", APPDIR="/user2/haninho/webtob/ap", PORT = “7654” *SVRGROUP htmlg NODENAME = "tmaxh1", SvrType = HTML webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD *SERVER html SVGNAME = htmlg, MinProc = 1, MaxProc =2 idvalid SVGNAME = webapg, MinProc = 1, MaxProc = 2, *SERVICE test SVRNAME = idvalid test2 SVRNAME = idvalid *URI wbapi Uri = "/svct/", Svrtype = WEBSTD *EXT htm MimeType = "text/html", SvrType = HTML
-
환경파일(Config-file)을 컴파일한다.
$wscfl –i idvalid.m
-
서비스 테이블을 생성한다.
$wsgst
-
소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 sessionid.c이다.
#include <stdio.h> #include <string.h> #include "../usrinc/wbapi.h" test(WBSVCINFO *rqst) { char *id; SESSION *session; session = wbGetSession(rqst); id = wbSessionGetId(session); wbPrint(rqst, "<html><body>"); wbPrint(rqst, "<h1>session id is %s </h1><br>",id); wbPrint(rqst, "<html><body>"); wbPrint(rqst, "<form method=get action=/svct/test2>"); wbPrint(rqst, "<td><input type=submit value=suit></td>"); wbPrint(rqst, "</form>"); wbPrint(rqst, "</body></html>"); wbReturn(rqst, WBSUCCESS); } test2(WBSVCINFO *rqst) { int date; date = wbIsRequestedSessionIdValid(rqst); if(date == 1) { wbPrint(rqst, "session is used=%d<br>",date); } else { wbPrint(rqst, "session is not used=%d<br>",date); } wbPrint(rqst, "<html><body>"); wbPrint(rqst, "<form method=get action=/svct/test2>"); wbPrint(rqst, "<td><input type=submit value=suit></td>"); wbPrint(rqst, "</form>"); wbPrint(rqst, "</body></html>"); wbReturn(rqst, WBSUCCESS); }
-
WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.
$compile c sessionid
-
다음은 결과가 출력된 화면이다.
[suit] 버튼을 클릭한다.
다시 [suit] 버튼을 클릭한다.
-
-
관련 함수
wbGetRequestedSessionId(), wbSessionIsNew(), wbSessionInvalidate()