Appendix E - StartCISPage Servlet

The StartCISPage servlet is the central servlet that is used in order to open intelligent HTML pages. It was already mentioned several times in this documentation. This document describes certain attributes that you can pass inside the servlet call. It covers the following topics:


Normal Calling of a Page

A normal page is called in the following way:

http://<host>:<port>/<webapplication>/servlet/StartCISPage?PAGEURL=/<project>/<pagename>.html

The StartCISPage servlet creates a frameset page around the intelligent HTML page that provides for specific functions that are internally required.

Appending Application Parameters

Application parameters can be passed by just appending the name and the value of the parameters to the URL. Each parameter must be the name of a property that is provided for by the server side adapter.

Example: the adapter provides for a property company. When opening a page via

http://<host>:<port>/<webapplication>/servlet/StartCISPage?PAGEURL=/<project>/<pagename>.html&company=softwareag

then the setCompany method of the adapter is called and the value "softwareag" is passed.

This is a very simple and powerful way to pass parameters through the URL.

Controlling the Session Life Cycle

A page relates to adapters living inside a session on server side. A session is opened by default when referencing a page via StartCISPage. By default, it is closed when the initial StartCISPage page is removed - either by closing the browser or by loading a different URL into it.

You can explicitly control this automated removal of sessions with the parameter ONUNLOADBEHAVIOR. If you call a page in the following way, the session is not removed when the page is removed:

http://<host>:<port>/<webapplication>/servlet/StartCISPage?PAGEURL=/<project>/<pagename>.html&ONUNLOADBEHAVIOUR=NOTHING

Controlling the Session ID

By default, a new session ID is internally generated when opening a page by StartCISPage. But you can also pass the session ID and the subsession ID explicitly. This might be of interest if you require to control the Application Designer session management from outside.

Calling a page in the following way

http://<host>:<port>/<webapplication>/servlet/StartCISPage?PAGEURL=/<project>/<pagename>.html&SESSIONID=4711&SUBSESSIONID=5

will internally open the session with ID 4711 - or use 4711 if it already exists. The same applies on subsession level.

Pay attention: if you use this possibility, then you are responsible for managing session IDs in such a way that they are unique.

Setting Default Parameters

Language

As described in Multi Language Management, Application Designer internally holds a language per session. This language can be set from outside:

http://<host>:<port>/<webapplication>/servlet/StartCISPage?PAGEURL=/<project>/<pagename>.html&LANGUAGE=E

Default Style Sheet

By calling

http://<host>:<port>/<webapplication>/servlet/StartCISPage?PAGEURL=/<project>/<pagename>.html&SESSIONCSS=../softwareag/styles/CIS_PARROTT.css&DEFAULTCSS=../softwareag/styles/CIS_PARROTT.css

you define that the CIS_PARROTT style sheet is used instead of the default style sheet. Of course, you can reference any style sheet of your own.

Mixing Parameters

All parameters can be mixed without any restrictions.

Setting Parameters with the HTTP Method POST

Instead of adding the parameters to the URL, you can also use the HTTP method POST to set the parameters in an HTML form.

Example (similar to the example under Appending Application Parameters, but with POST):

<html> 
<head> 
<title>Start Application Designer Demo Application</title> 
<script type="text/javascript"> 
function submitStart() { 
document.forms["myform"].submit();
} 
</script> 
</head> 
<body> 
 <form id="myform" name="myform" action="servlet/StartCISPage" method="post">
  <input type="hidden" name="PAGEURL" value="/<project>/<pagename>" />
   Company: <input type="input" name="company" value="softwareag" /><br/>
 </form> 
 <a href="#" onclick="submitStart()">Start Demo</a> 
 <div id="status">Click on Start Demo</div> 
</body> 
</html>