Janus Web Server $functions
The Janus Web Server $functions, prefixed with $Web_
, are used to extend
User Language programs so that they can present "dynamic" data-based web
pages, can identify information about the client, can process "cookies"
for persistent client data storage, and can process client form input,
among other things.
Except where noted, these $functions can only be called by User Language programs running on a Janus Web Server thread; if called by a user who is not running as a Janus Web Server thread, the results of the $function will be meaningless. See "Janus Web Server application coding considerations" for instructions on how to debug a Janus Web Server application.
A grouping of the $functions by their purpose is presented in "Janus Web Server $function categories".; Other pages (by function name) give a complete explanation of each of the Janus Web Server $functions, including a brief description, expected arguments, values returned, syntax diagram, and examples.
Janus Web Server $function categories
The Janus Web Server $functions can be categorized as shown in these subsections.
Output processing functions
$Web_Done | Break the connection with a return message. |
---|---|
$Web_Flush | Clear the contents of the client buffer. |
$Web_Form_Done | Sends the current output page if request was a GET or redirects back to itself if request was a POST. |
$Web_Off | Suspend adding terminal output to the client buffer. |
$Web_On | Resume adding terminal output to the client buffer. |
$Web_Output_Content | Retrieve current output buffer contents. |
$Web_ProcSend | Add contents of a procedure to the client buffer. |
$Web_Proc_Send | Add contents of a procedure to the client buffer. |
$Web_Put_Bin | Add binary string to the client buffer. |
$Web_Put_Text | Add text string to the client buffer. |
$Web_Sub | Sets a delimiter for symbolic substitution during $Web_ProcSend or the SEND subcommand of the ON command. |
$Web_Type | Set the content type. |
Global drop-down lists | There is a group of $functions for creating a drop-down list in the buffer; this group is summarized in "Drop-down lists: HTML <select>". |
Drop-down lists: HTML <select>
One useful construct on HTML forms is called the "drop-down" list;
these are provided by the HTML <select>
element.
This provides the browser user with a list of items, allowing the user to
click on the item or items of choice; each of these items is an HTML
<option> element (thus a drop-down list may also be called a "select options list").
Often, the option list comes from a metadata file or some other source in your database that changes very infrequently. Because they come from a database, you don't want to hand-code them in a program; and because they change infrequently, you don't want to incur the overhead of deriving them from the database for each web request.
Janus Web Server helps you create drop-down lists using the "$Web_Sel*" functions. The $Web_Sel* functions are summarized below.
The highlights of the $Web_Sel* functions are:
Saved global select elements | The $Web_Save_Sel function saves a select option list of values and descriptions; this saved global element can be used to build a <select> element as part of the web response output. Global select elements are identified by a character string name, and they are shared by all users in a Model 204 Online. Access to the global select elements is very fast, but they are not optimized for updating, so, if there are frequent changes to the information deriving a select option list, some technique other than global select elements should be used. |
---|---|
Specification of selected attribute | The selected attribute of the <option> elements is specified at the time that a <select> element is built. It can be specified in either of these ways:
|
Validation of values | A set of CHECK $functions is provided to ensure that the value(s) specifying the selected options is indeed among the option values. |
Delimited string select elements | As an alternative to the global select elements, you can specify the values and descriptions of a select options list completely at runtime. This gives you some of the coding convenience, and it gives you a common paradigm for select options, even in those cases that are not appropriate for global select elements. |
You supply <select>
| There are several attributes that you may want to supply on the <select> tag; rather than introducing some arguments to the $Web_Sel* functions for these attributes, you simply provide the <select> tag, usually by means of a Print statement. The $Web_Sel* functions that build the select option list usually supply the </select> tag, but you can bypass this with the NOENDSEL option, if needed.
|
The syntax for the HTML <select>
element is very simple:
<SELECT sel_attrs> <OPTION opt_attrs> option_content <OPTION opt_attrs> option_content </select>
The components of note for the $Jan_Web functions are:
<SELECT> | There are several attributes that you may wish to supply on the
|
||||
---|---|---|---|---|---|
sel_attrs | The select attributes of interest are:
|
||||
opt_attrs | The option attributes of interest are:
|
||||
</OPTION> | Most browsers do not require the </OPTION> tag at the end of the
|
||||
</SELECT> | The $Web_Sel* functions which build the select option list usually
supply the |
Strictly speaking, each <option>
element in a select options list may
have a value attribute, which can be used to identify the
<option>
element.
When a form containing a select options list is sent as a web request,
the
form parameter identified by the <select>
name attribute
has as its values all of the value attributes
of all the options in the list which the user selected at the browser, for
example by clicking on them.
If an <option>
element does not have a value attribute, the
"content" of the <option>
element is used as its value.
The content of the element is always used as the display on the browser
for the option.
Therefore, in HTML terms, every <option>
element has a content, which is
always displayed on the browser, and it may optionally have a value
attribute, which may be different from the content, and is used to identify
which options have been selected.
Since the manipulation of drop-down lists in Janus Web Server programming primarily involves manipulation of the option element values, we discuss the value attribute and the content of the option element from a different perspective. The content of the option element is called its description, which is the string displayed on the browser, and by default this is the same as the value of the option element. When you specify an option element in Janus Web Server, you always specify its value, and the description is optional, even though in terms of HTML syntax the option element always has a content, and its value attribute is optional.
A typical form application processes the user input;
if there are errors, the form is redisplayed with messages
and with form fields filled in as the user filled them in.
To send the form with the same <option>
s selected that the user
clicked on, the $Web_Sel* functions have a separate argument
specifying the <option>
s to be selected, and it also allows you to
simply specify a parameter name (typically, the <select name>
)
whose values specify the <option>
s to be selected.
The $Web_Sel* functions are summarized in the following list: See "$Web_Sel* example" for an extended example using many of the $Web_Sel*/var> functions.
$Web_Del_Sel | Deletes a global select element, preventing its further use and freeing any CCATEMP pages used by it. |
---|---|
$Web_Save_Sel | Creates a global select element and saves the list of values and, optionally, corresponding description strings, in CCATEMP pages. |
$Web_Sel | Builds the options list for a select element; options list taken from a global select element created by $Web_Save_Sel; selected option specified by character string. |
$Web_Sel_Check | Validates that a string matches one of the options of a global select element. |
$Web_Selp | Builds the options list for a select element; options list taken from a global select element created by $Web_Save_Sel; selected option specified by parameter name. |
$Web_Selp_Check | Validates that each value of a form and/or isindex parameter matches one of the options of a global select element. |
$Web_Selps | Builds the options list for a select element; options list taken from a delimited list of strings; selected option specified by parameter name. |
$Web_Selps_Check | Validates that each value of a form and/or isindex parameter matches one of a delimited list of strings. |
$Web_Sels | Builds the options list for a select element; options list taken from a delimited list of strings; selected option specified by character string. |
$Web_Sels_Check | Validate that a string matches one of a delimited list of strings. |
$Web_Selsp | Builds the options list for a select element; options list taken from a delimited list of strings; selected option specified by parameter name. ($Web_Selsp is a synonym for $Web_Selps.) |
$Web_Selsp_Check | Validates that each value of a form and/or isindex parameter matches one of a delimited list of strings. ($Web_Selsp_Check is a synonym for $Web_Selps_Check.) |
Form input processing functions
$Web_Form_Action | Retrieves the current URL along with ISINDEX data if present. |
---|---|
$Web_Form_Action_Len | Retrieves the length of the current URL along with ISINDEX data if present. |
$Web_Form_Len | Retrieve the length of a field value in a form. |
$Web_Form_Line | Retrieve the value of line in a field in a form. |
$Web_Form_Name | Retrieve the name of a field in a form. |
$Web_Form_Num_Line | Retrieve the number of lines in a field in a form. |
$Web_Form_Parm | Retrieve the value of a field in a form. |
$Web_Form_Parm_Len | Retrieve the length of a field value in a form. |
$Web_Form_Parm_Line | Retrieve the value of line in a field in a form. |
$Web_Form_Parm_Num_Line | Retrieve the number of lines in a field in a form. |
$Web_Num_Form | Retrieve the number of fields in a form. |
Isindex data/URL parameter processing functions
URL parameters and isindex data are two terms for the same thing.
$Web_IsIndex_Len | Retrieve the length of an isindex field value. |
---|---|
$Web_IsIndex_Line | Retrieve the value of line in an isindex field. |
$Web_IsIndex_Name | Retrieve the name of an isindex field. |
$Web_IsIndex_Num_Line | Retrieve the number of lines in an isindex field. |
$Web_IsIndex_Parm | Retrieve the value of an isindex field. |
$Web_IsIndex_Parm_Len | Retrieve the length of a field value in a form. |
$Web_IsIndex_Parm_Line | Retrieve the value of line in an isindex field. |
$Web_IsIndex_Parm_Lstr | Retrieve the value of an isindex field as a Longstring. |
$Web_IsIndex_Parm_Num_Line | Retrieve the number of lines in an isindex field. |
$Web_Num_IsIndex | Retrieve the number of isindex fields. |
$Web_Num_URL_Parm | Retrieve the number of URL parameters. |
$Web_URL_Parm_Len | Retrieve the length of a URL parameter value. |
$Web_URL_Parm_Line | Retrieve the value of line in an URL parameter. |
$Web_URL_Parm_Lstr | Retrieve the value of a URL parameter as a longstring. |
$Web_URL_Parm_Name | Retrieve the name of an URL parameter. |
$Web_URL_Parm_Num_Line | Retrieve the number of lines in an URL parameter. |
$Web_URL_Parm | Retrieve the value of an URL parameter. |
Form or isindex data/URL parameter processing $functions
URL parameters and isindex data are two terms for the same thing.
$Web_Len | Retrieve the length of a URL parameter or form field value. |
---|---|
$Web_Line | Retrieve the value of line in a URL parameter or form field. |
$Web_Name | Retrieve the name of a URL parameter or form field. |
$Web_Num_Line | Retrieve the number of lines in a URL parameter or form field. |
$Web_Parm | Retrieve the value of a URL parameter or form field. |
$Web_Parm_Len | Retrieve the length of a field value in a form. |
$Web_Parm_Line | Retrieve the value of line in a URL parameter or form field. |
$Web_Parm_Num_Line | Retrieve the number of lines in a URL parameter or form field. |
$Web_Num | Retrieve the number of URL parameter or form fields. |
Header processing $functions
$Web_Hdr_Len | Retrieve the length of a field value in a request header. |
---|---|
$Web_Hdr_Name | Retrieve the name of a field in a request header. |
$Web_Hdr_Parm | Retrieve the value of a field in a request header. |
$Web_Num_Hdr | Retrieve the number of fields in a request header. |
Cookie processing $functions
$Web_Cookie_Len | Retrieve the length of a cookie value. |
---|---|
$Web_Cookie_Name | Retrieve the name of a cookie. |
$Web_Cookie_Parm | Retrieve the value of a cookie. |
$Web_Get_Cookie | Retrieve the value of a cookie. |
$Web_Get_Cookie_Lstr | Retrieve the value of a cookie into a Longstring. |
$Web_Num_Cookie | Retrieve the number of cookies in a request. |
$Web_Set_Cookie | Set Persistent Client State cookies. |
$Web_Set_Cookie_Lstr | Set the value of a cookie from a Longstring. |
Date processing $functions
$Web_Date | Get the current (GMT) date and time in seconds. |
---|---|
$Web_DateND | Get the current (GMT) date in days. |
$Web_DateNM | Get the current (GMT) date and time in milliseconds. |
$Web_DateNS | Get the current (GMT) date and time in seconds. |
$Web_Date2D | Convert a character format date and time to number of seconds. |
$Web_Date2N | Convert a character format date and time to number of seconds. |
$Web_Date2ND | Convert a character format date and time to number of days. |
$Web_Date2NM | Convert a character format date and time to number of milliseconds. |
$Web_Date2NS | Convert a character format date and time to number of seconds. |
$Web_D2Date | Convert a number of seconds to web time format. |
$Web_ND2Date | Convert a number of days to web time format. |
$Web_NM2Date | Convert a number of milliseconds to web time format. |
$Web_NS2Date | Convert a number of seconds to web time format. |
$Web_N2Date | Convert a number of seconds to web time format. |
File upload $functions
$Web_File_Content | Upload data into a Longstring. |
---|---|
$Web_List_Receive | Upload data into a $list. |
$Web_List_Recv | Upload data into a $list. |
$Web_Proc_Receive | Upload data into a procedure. |
$Web_Proc_Recv | Upload data into a procedure. |
Saved $list and record set $functions
$Web_Restore_List | Restore a $list. |
---|---|
$Web_Restore_Recset | Restore a list or a foundset. |
$Web_Save_List | Save a $list. |
$Web_Save_Recset | Save a list or a foundset. |
$Web_Cert_Info | Retrieve information from a client certificate received from a web client. |
---|---|
$Web_Cert_Levels | Determine the number of levels in a client certificate received from a web client. |
$Web_Cipher | Determine which SSL cipher, if any, is being used for a connection. |
$Web_End_Ses | Terminate a logical login session created with SSLSES or SESCOOKIE. |
$Web_Protocol | Determine which network security protocol, if any, is being used for a connection. |
$Web_Secure | Determine if connection is on a secure (SSL or TLS) port. |
$Web_Logmsg | Retrieve a saved logon messages. |
---|---|
$Web_Num_Logmsg | Retrieve the number of saved logon messages. |
$Web_Password | Determine password sent by browser. |
$Web_Realm | Set the security realm before sending an "Unauthorized". |
$Web_User | Determine userid sent by browser. |
Miscellaneous $functions
$Web | Determine whether running a web request. |
---|---|
$Web_Browser | Check browser release and brand/type. |
$Web_Expire | Set response entity expiration date. |
$Web_Input_Content | Retrieve form or upload information into a Longstring. |
$Web_Ipaddr | Get the dotted IP address of the browser. |
$Web_Last_Modified | Indicate time response entity was last updated. |
$Web_Port | Get the name of the port of the Web Server. |
$Web_Nocache | Set HTTP response headers so fresh page is displayed. |
$Web_Response | Set any HTTP response header parameter. |
$Web_Screen | Change or retrieve current 3270 screen mapping rules. |
$Web_Set | Change certain Janus Web parameters. |
$Web_Redirect | Redirect processing to another server. |
$Web_URL_Encode and $Web_URL_Encode_Lstr | Encode data so that it can be properly made part of a URL, especially for isindex data. |
$Web_URL_Decode and $Web_URL_Decode_Lstr | Decode data that is in URL encoded format, most likely as a URL parameter or a form parameter. |
CALLing Sirius $functions
As of version &soopv of the Sirius Mods, you can invoke many of the Sirius $functions using a User Language CALL statement instead of assigning the function result to a %variable. For example:
%l = $ListNew $ListAdd(%L, 'Once upon a midnight dreary') $ListAdd(%L, 'As I pondered weak and weary') Call $List_Print(%l)
You can CALL such $functions and still test for their return code, if necessary. For example:
Call $List_Print(%l) If $List_Print(%l) Then
This "callability" is an optional approach; it does not replace %variable assignment.
The callable $functions are indicated as such in their individual function descriptions. Typically they are $functions that do more than simply return a value, and the value they return is primarily an indicator of whether the function completed successfully. $ListCnt, for example, is a (non-callable) $function that just returns a value.