sessionrpc.lzx
<library>
<include href="rpc/rpc.lzx"/>
<include href="rpc/library/javarpc.js"/>
<security>
<allow>
<pattern>^org\.openlaszlo\.remote\.LZHttpSessionRemote$</pattern>
</allow>
</security>
<class name="sessionrpc" extends="rpc">
<attribute name="_attributename" value="none
" type="string"/>
<attribute name="_scope" value="none
" type="string"/>
<attribute name="_classname" type="string" value="org.openlaszlo.remote.LZHttpSessionRemote
"/>
<method name="load">
var opts = {
loadoption: 'loadonly',
classname: this._classname,
oname: this._attributename,
scope: this._scope
}
LzJavaRPCService.loadObject(this._loadDel, opts, this.secure,
this.secureport);
</method>
<method name="_setup" args="o">
var ok = super._setup(o);
for (var k in this.proxy) {
var tpka = this.proxy[k]['args'];
if (tpka == null) {
tpka = this.proxy[k].args = {};
}
tpka.secure = this.secure;
tpka.secureport = this.secureport;
tpka.scope = this._scope;
tpka.attributename = this._attributename;
}
return ok;
</method>
<doc>
<tag name="shortdesc"><text>SessionRPC object</text></tag>
<text>
<p>A class to get an http session object and invoke its methods. Remote method
signatures are:</p>
<ul>
<li>
<dfn>getAttribute(name)</dfn>: returns object, array, or primitive
type.</li>
<li>
<dfn>getAttributeNames()</dfn>: returns array of attribute names.</li>
<li>
<dfn>getId()</dfn>: returns remote session id</li>
<li>
<dfn>getMaxInactiveInterval()</dfn>: returns max inactive interval for
session.</li>
<li>
<dfn>invalidate()</dfn>: invalidate remote session.</li>
<li>
<dfn>isNew()</dfn>: returns true if the client does not yet know about the
session or if the client chooses not to join the session.</li>
<li>
<dfn>removeAttribute(name)</dfn>: remove attribute named name; returns
void.</li>
<li>
<dfn>setAttribute(name,value)</dfn>: set attribute named name with value;
returns void.</li>
<li>
<dfn>setMaxInactiveInterval(interval)</dfn>: set max inactive interval for
session.</li>
</ul>
<p>See <a href="http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/http/HttpSession.html" shape="rect">
javax.servlet.http.HttpSession</a> in the <a href="http://java.sun.com/products/servlet/2.3/javadoc/" shape="rect">Java Servlet API</a>
documentation for details.</p>
<example>
<canvas height="475" debug="true">
<debug x="300" y="20" width="500" height="400" />
<include href="rpc/sessionrpc.lzx" />
<dataset name="idDset" />
<sessionrpc id="session" autoload="false">
<handler name="oninit">
Debug.debug('loading session object...')
this.load();
</handler>
<handler name="onload">
Debug.debug('session object loaded');
canvas.buttons.setAttribute('visible', true);
</handler>
<handler name="ondata" args="data">
Debug.debug("default ondata: %w", data);
</handler>
<handler name="onerror" args="error">
Debug.debug("default onerror: %w", error);
</handler>
<remotecall funcname="getId" />
<remotecall name="getIdWithDset" funcname="getId" dataobject="idDset" />
<remotecall funcname="getMaxInactiveInterval" />
<remotecall funcname="isNew" />
<remotecall funcname="setMaxInactiveInterval">
<param value="15" />
</remotecall>
<remotecall name="setmyattr" funcname="setAttribute">
<param value="'myattr'" />
<param value="'MY ATTRIBUTE'" />
</remotecall>
<remotecall name="setmyother" funcname="setAttribute">
<param value="'myother'" />
<param value="'MY OTHER'" />
</remotecall>
<remotecall name="getmyattr" funcname="getAttribute">
<param value="'myattr'" />
</remotecall>
<remotecall name="getmyother" funcname="getAttribute">
<param value="${'myother'}" />
</remotecall>
<remotecall funcname="getAttributeNames" />
<remotecall name="removemyattr" funcname="removeAttribute">
<param value="'myattr'" />
</remotecall>
<remotecall name="removemyother" funcname="removeAttribute">
<param value="'myother'" />
</remotecall>
</sessionrpc>
<view name="buttons" x="10" y="10" layout="spacing: 5" visible="false">
<button text="getId" onclick="session.getId.invoke()" />
<button text="getIdWithDset" onclick="session.getIdWithDset.invoke()" />
<view height="20" width="50">
<text datapath="idDset:/text()" width="240" bgcolor="red"/>
</view>
<button text="getMaxInactiveInterval" onclick="session.getMaxInactiveInterval.invoke()" />
<button text="isNew" onclick="session.isNew.invoke()" />
<button text="setMaxInactiveInterval" onclick="session.setMaxInactiveInterval.invoke()" />
<view x="20" layout="spacing: 5">
<attribute name="myDel" value="null" type="expression" />
<handler name="oninit">
this.myDel = new LzDelegate(this, 'myhandler');
</handler>
<method name="myhandler" args="data">
Debug.debug('myhandler: %w', data);
</method>
<button text="setmyattr" onclick="session.setmyattr.invoke()" />
<button text="setmyother" onclick="session.setmyother.invoke()" />
<button text="getmyattr" onclick="session.getmyattr.invoke()" />
<button text="getmyother" onclick="session.getmyother.invoke()" />
<button text="getmyattr (w/params)" onclick="session.getmyattr.invoke(['myattr'])" />
<button text="getmyattr (w/params and delegate)">
<handler name="onclick">
session.getmyattr.invoke(['myattr'], parent.mydel);
</handler>
</button>
<button text="getAttributeNames" onclick="session.getAttributeNames.invoke()" />
<button text="removemyattr" onclick="session.removemyattr.invoke()" />
<button text="removemyother" onclick="session.removemyother.invoke()" />
</view>
</view>
</canvas>
</example>
<b>See Also:</b>
<br/>
<ul>
<li>
<sgmltag class="element" role="lz.rpc"><rpc></sgmltag>
</li>
<li>
<sgmltag class="element" role="lz.javarpc"><javarpc></sgmltag>
</li>
<li>
<sgmltag class="element" role="lz.webapprpc"><webapprpc></sgmltag>
</li>
<li>
<sgmltag class="element" role="lz.remotecall"><remotecall></sgmltag>
</li>
<li>
<a href="../developers/rpc.html" target="laszlo-dguide" shape="rect">Developer's Guide: RPC chapter</a>
</li>
<li>
<a href="../developers/rpc-javarpc.html" target="laszlo-dguide" shape="rect">Developer's Guide: JavaRPC chapter</a>
</li>
</ul>
</text>
</doc>
</class>
</library>
Cross References
Includes
Classes