--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" \r
+ "http://www.w3.org/TR/REC-html40/loose.dtd"> \r
+<HTML>\r
+ <HEAD>\r
+ <TITLE>SSI Commands</TITLE>\r
+ <link rel="stylesheet" type="text/css" href="../style/doc.css">\r
+ <STYLE TYPE="text/css">\r
+ A.ssi {\r
+ text-decoration : none;\r
+ }\r
+\r
+ A.ssi:link {\r
+ color : blue;\r
+ text-decoration : none;\r
+ }\r
+\r
+ A.ssi:visited {\r
+ color : blue;\r
+ text-decoration : none;\r
+ }\r
+\r
+ A.ssi:active {\r
+ color : blue;\r
+ text-decoration : none;\r
+ }\r
+\r
+ .ssi {\r
+ font-weight : bold;\r
+ }\r
+\r
+ .cmd {\r
+ color : blue;\r
+ }\r
+\r
+ .par {\r
+ color: red;\r
+ }\r
+\r
+ .val {\r
+ font-style : italic;\r
+ font-weight : normal;\r
+ }\r
+ </STYLE>\r
+ <!-- Changed by: Benoit Mahe, 18-Jul-1997 -->\r
+ </HEAD>\r
+ <BODY>\r
+ <div class="icons-w3c">\r
+ <a href="../../../">\r
+ <img src="/Icons/w3c_home" \r
+ border="0" \r
+ alt="W3C logo"\r
+ height="48" \r
+ width="72">\r
+ </a>\r
+ </div>\r
+ <div class="icons-jigsaw">\r
+ <a href="../../">\r
+ <img src="/Icons/jigsaw" \r
+ border="0"\r
+ alt="Jigsaw"\r
+ height="49"\r
+ width="212">\r
+ </a>\r
+ </div>\r
+\r
+ <div class="title">\r
+ <H1 class="title">Server Side Include commands</H1>\r
+ <hr NOSHADE width="70%" align="left">\r
+ <a href="../../Overview.html">Jigsaw Home</a> /\r
+ <a href="../Overview.html">Documentation Overview</a> /\r
+ <a href="Tutorials.html">Tutorials</a>\r
+ </div>\r
+ <div class="body">\r
+ <p>\r
+ These commands should be written in a .shtml file that is indexed as a\r
+ FileResource associated with a SSIFrame. The commands are separated in\r
+ two parts:\r
+ <p>\r
+ <UL>\r
+ <LI><A HREF="#commands">Commands</A>\r
+ <OL>\r
+ <LI><A HREF="#config">ConfigCommand</A></LI>\r
+ <LI><A HREF="#cookie">CookieCommand</A></LI>\r
+ <LI><A HREF="#count">CountCommand</A></LI>\r
+ <LI><A HREF="#echo">EchoCommand</A></LI>\r
+ <LI><A HREF="#exec">ExecCommand</A></LI>\r
+ <LI><A HREF="#flast">FLastCommand</A></LI>\r
+ <LI><A HREF="#fsize">FSizeCommand</A></LI>\r
+ <LI><A HREF="#include">IncludeCommand</A></LI>\r
+ <LI><A HREF="#jdbc">jdbcCommand</A></LI>\r
+ <LI><A HREF="#servlet">ServletCommand</A></LI>\r
+ </OL>\r
+ <LI><A HREF="#controls">Control Commands</A>\r
+ <OL>\r
+ <LI><A HREF="#counter">CounterCommand</A></LI>\r
+ <LI><A HREF="#else">ElseCommand</A></LI>\r
+ <LI><A HREF="#endif">EndifCommand</A></LI>\r
+ <LI><A HREF="#endloop">EndloopCommand</A></LI>\r
+ <LI><A HREF="#exitloop">ExitloopCommand</A></LI>\r
+ <LI><A HREF="#if">IfCommand</A></LI>\r
+ <LI><A HREF="#loop">LoopCommand</A></LI>\r
+ </OL>\r
+ </UL>\r
+ A complete <A HREF="#example">example</A>.\r
+ <H2><A NAME="commands"></A>Commands</H2>\r
+ <H4><A NAME="config"></A><U>ConfigCommand</U></H4>\r
+ <DL>\r
+ <DD>\r
+ Used to set the <B>sizefmt</B> and <B>datefmt</B> variables, which\r
+ control the output of file sizes and dates.</DD>\r
+ <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>datefmt =</B> the date format</LI>\r
+ <LI><B>sizefmt =</B> the size format</LI>\r
+ </UL>\r
+ <DD>Example:</DD>\r
+ <DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">config</SPAN> <SPAN CLASS="par">sizefmt</SPAN>="<SPAN CLASS="val">bytes</SPAN>" --></SPAN>\r
+</PRE>\r
+ </DIV>\r
+ <p>\r
+</DL>\r
+ <H4>\r
+ <A NAME="cookie"></A><U>CookieCommand</U></H4>\r
+<DL>\r
+ <DD>Cookies access from server side includes.</DD>\r
+ <DD>Parameters:</DD>\r
+ <DD><UL>\r
+ <LI><B>get =</B> name of the cookie to get</LI>\r
+ <LI><B>alt =</B> alternative value</LI>\r
+ <LI><B>if =</B> name of the cookie \r
+ (just to test if the cookie exists)</LI>\r
+ <LI><B>then =</B> value</LI>\r
+ </UL>\r
+ <DD>Examples:</DD>\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">cookie</SPAN> <SPAN CLASS="par">get</SPAN>="<SPAN CLASS="val">C1</SPAN>" <SPAN CLASS="par">alt</SPAN>="<SPAN CLASS="val">hello</SPAN>" -->, </SPAN>\r
+display the value of the cookie "C1" or "hello" if the cookie \r
+is not in the incomming request.\r
+\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">cookie</SPAN> <SPAN CLASS="par">if</SPAN>="<SPAN CLASS="val">C1</SPAN>" <SPAN CLASS="par">then</SPAN>="<SPAN CLASS="val">hello</SPAN>" <SPAN CLASS="par">alt</SPAN>="<SPAN CLASS="val">bye</SPAN>"-->, </SPAN>\r
+display "hello" if the cookie "C1" is in the request. If not display "bye"\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="count"></A><U>CountCommand</U></H4>\r
+<DL> <DD>\r
+ This command inserts the number of recorded accesses to this resource,\r
+ as reported by \r
+ <A HREF="../Reference/org.w3c.jigsaw.filters.CounterFilter.html">\r
+ CounterFilter</A>.\r
+ </DD>\r
+ <DD>Parameters: <B>none</B></DD>\r
+ <DD>Example:</DD>\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">hitcount</SPAN> --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="echo"></A><U>EchoCommand</U></H4>\r
+<DL>\r
+ <DD>\r
+ The <B>echo</B> SSI command. As extensions, it has the\r
+ parameters "reqstate" (for echoing <B>Jigsaw</B> request states) \r
+ and "reqheader" (for echoing request header).Also, it can take\r
+ the flag "here", whose presence means that the variable is to be \r
+ interpreted at the deepest request level (in the case of chained \r
+ internal requests), instead of doing so at the top (external\r
+ request) level. It inserts the value of a variable in the\r
+ document.\r
+ </DD>\r
+ <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>var</B> = a SSI variable</LI>\r
+ <LI><B>reqstate</B> = a Jigsaw request state</LI>\r
+ <LI><B>reqheader</B> = a request header</LI>\r
+ <LI><B>here</B> = a flag</LI>\r
+ </UL>\r
+ </DD>\r
+ <DD>Examples:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">echo</SPAN> <SPAN CLASS="par">var</SPAN>="<SPAN CLASS="val">DOCUMENT_URI</SPAN>" --></SPAN>\r
+display the document uri\r
+\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">echo</SPAN> <SPAN CLASS="par">reqheader</SPAN>="<SPAN CLASS="val">referer</SPAN>" --></SPAN>\r
+display the referer header of the request\r
+\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">echo</SPAN> <SPAN CLASS="par">reqstate</SPAN>="<SPAN CLASS="val">pathinfo</SPAN>" --></SPAN>\r
+display the request state "pahtinfo"\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="exec"></A><U>ExecCommand</U></H4>\r
+<DL>\r
+ <DD>\r
+ the SSI <B>exec</B> command. It inserts the output from a CGI script or\r
+ a shell command in the document. Note that in the Jigsaw architecture CGI\r
+ scripts are just another resource class, so that no distinction is made\r
+ between executing a CGI script or including a file.\r
+ </DD>\r
+ <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>cmd</B> = the command to execute</LI>\r
+ </UL>\r
+ </DD>\r
+ <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">exec</SPAN> <SPAN CLASS="par">cmd</SPAN>="<SPAN CLASS="val">ls -lsa</SPAN>" --></SPAN>\r
+display the result of the ls command\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="flast"></A><U>FLastModCommand</U></H4>\r
+ <DL>\r
+ <DD>The standard <B>lastmod</B> SSI command.</DD>\r
+ <DD>Parameters: <B>none</B></DD>\r
+ <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">flastmod</SPAN>--></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="fsize"></A><U>FSizeCommand</U></H4>\r
+<DL> <DD>\r
+ The SSI <B>fsize</B> command. It inserts the size of the unparsed file\r
+ in the document, according to the current value of the variable \r
+ <B>sizefmt</B>.See <A HREF="#config">configCommand</A>.\r
+ </DD>\r
+ <DD>Parameters: <B>none</B></DD>\r
+ <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">fsize</SPAN> --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="include"></A><U>IncludeCommand</U></H4>\r
+<DL>\r
+ <DD>\r
+ The SSI <B>include</B> command. (CGI scripts <I>can</I> be \r
+ included, simply by providing a so-called virtual path to a\r
+ resource with a CgiFrame).\r
+ </DD>\r
+ <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>file</B> = the file to include</LI>\r
+ <LI><B>virtual</B> = a virtual path</LI>\r
+ <LI><B>ifheader</B> = a request header</LI>\r
+ <LI><B>else</B> = a file</LI>\r
+ </UL>\r
+ </DD>\r
+ <DD>Examples:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">include</SPAN> <SPAN CLASS="par">file</SPAN>="<SPAN CLASS="val">included.html</SPAN>" --></SPAN>\r
+include the file "included.html" in the current file\r
+\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">include</SPAN> <SPAN CLASS="par">ifheader</SPAN>="<SPAN CLASS="val">Referer</SPAN>" <SPAN CLASS="par">file</SPAN>="<SPAN CLASS="val">included.html</SPAN>" <SPAN CLASS="par">else</SPAN>="<SPAN CLASS="val">included2.html</SPAN>" --></SPAN>\r
+if the request has a Referer header then include "included.html"\r
+else include "included2.html"\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="jdbc"></A><U>jdbcCommand</U></H4>\r
+<DL>\r
+ <DD>\r
+ The SSI <B>jdbc</B> command allows you to query a SQL database via JDBC.\r
+ Combinated with some <A HREF="#controls">Control Commands</A>, it allows\r
+ you to display the content of a database easyly.\r
+ </DD>\r
+ <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>select</B> = the SQL request</LI>\r
+ <LI><B>url</B> = the database URL</LI>\r
+ <LI><B>driver</B> = the JDBC driver class</LI>\r
+ <LI><B>user</B> = the username</LI>\r
+ <LI><B>password</B> = the password</LI>\r
+ <LI><B>name</B> = the result name</LI>\r
+ <LI><B>column</B> = the column number</LI>\r
+ <LI><B>next</B> = a flag</LI>\r
+ </UL>\r
+ </DD>\r
+ <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">jdbc</SPAN> <SPAN CLASS="par">select</SPAN>="<SPAN CLASS="val">SELECT * FROM services</SPAN>" <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result</SPAN>"\r
+ <SPAN CLASS="par">driver</SPAN>="<SPAN CLASS="val">com.imaginary.sql.msql.MsqlDriver</SPAN>" \r
+ <SPAN CLASS="par">url</SPAN>="<SPAN CLASS="val">jdbc:msql://www43.inria.fr:4333/services</SPAN>" --></SPAN>\r
+this is the setup of the command.\r
+\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">jdbc</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result</SPAN>" <SPAN CLASS="par">next</SPAN>="<SPAN CLASS="val">true</SPAN>" --></SPAN>\r
+this command move the pointer to the next line of the result set.\r
+\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">jdbc</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result</SPAN>" <SPAN CLASS="par">column</SPAN>="<SPAN CLASS="val">1</SPAN>" --></SPAN>\r
+display the first column of the current line.\r
+\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">jdbc</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result</SPAN>" <SPAN CLASS="par">column</SPAN>="<SPAN CLASS="val">2</SPAN>" --></SPAN>\r
+display the second column of the current line.\r
+\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">jdbc</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result</SPAN>" <SPAN CLASS="par">column</SPAN>="<SPAN CLASS="val">3</SPAN>" --></SPAN>\r
+display the third column of the current line.\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="servlet"></A><U>ServletCommand</U></H4>\r
+<DL> <DD>\r
+ The SSI <B>servlet</B> command. Servlet can be executed simply\r
+ by providing a url path to a servlet class.\r
+ </DD>\r
+ <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>name</B> = the command identifier</LI>\r
+ <LI><B>code</B> = the servlet URL</LI>\r
+ <LI><B>param</B> = a parameter name</LI>\r
+ <LI><B>value</B> = a parameter value</LI>\r
+ </UL>\r
+ </DD>\r
+ <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">\r
+<!--#<SPAN CLASS="cmd">servlet</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">Snoop</SPAN>" <SPAN CLASS="par">param</SPAN>="<SPAN CLASS="val">p1</SPAN>" <SPAN CLASS="par">value</SPAN>="<SPAN CLASS="val">v1</SPAN>" -->\r
+<!--#<SPAN CLASS="cmd">servlet</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">Snoop</SPAN>" <SPAN CLASS="par">param</SPAN>="<SPAN CLASS="val">p2</SPAN>" <SPAN CLASS="par">value</SPAN>="<SPAN CLASS="val">v2</SPAN>" -->\r
+<!--#<SPAN CLASS="cmd">servlet</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">Snoop</SPAN>" <SPAN CLASS="par">param</SPAN>="<SPAN CLASS="val">p3</SPAN>" <SPAN CLASS="par">value</SPAN>="<SPAN CLASS="val">v3</SPAN>" -->\r
+<!--#<SPAN CLASS="cmd">servlet</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">Snoop</SPAN>" <SPAN CLASS="par">code</SPAN>="<SPAN CLASS="val">/servlet/snoop</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H2><A NAME="controls"></A>Control Commands</H2>\r
+ <H4><A NAME="counter"></A><U>CounterCommand</U></H4>\r
+<DL> <DD>\r
+ The SSI <B>counter</B> command. Used to do things like cpt = cpt\r
+ + 1.\r
+ </DD>\r
+ <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>name</B> = the counter identifier</LI>\r
+ <LI><B>init</B> = the init value</LI>\r
+ <LI><B>incr</B> = the value to add to the counter</LI>\r
+ <LI><B>value</B> = a flag</LI>\r
+ </UL>\r
+ </DD>\r
+ <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">cpt</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">init</SPAN>="<SPAN CLASS="val">0</SPAN>" --></SPAN>\r
+Initialisation: cpt1 = 0\r
+\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">cpt</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">incr</SPAN>="<SPAN CLASS="val">1</SPAN>" --></SPAN>\r
+cpt1 = cpt1 + 1\r
+\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">cpt</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">value</SPAN>="<SPAN CLASS="val">true</SPAN>" --></SPAN>\r
+display the current value of cpt1\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="else"></A><U>ElseCommand</U></H4>\r
+<DL> <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>name =</B> the <I>if</I> command identifier</LI>\r
+ </UL>\r
+ </DD>\r
+ <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">else</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">if2</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="endif"></A><U>EndifCommand</U></H4>\r
+ <DL> <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>name</B> = the <I>if</I> command identifier</LI>\r
+ </UL>\r
+ </DD>\r
+ <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">endif</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">if2</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="endloop"></A><U>EndloopCommand</U></H4>\r
+ <DL> \r
+ <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>name</B> = the <I>loop</I> command identifier</LI>\r
+ </UL>\r
+ </DD>\r
+ <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">endloop</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">loop2</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="exitloop"></A><U>ExitloopCommand</U></H4>\r
+ <DL>\r
+ <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>name</B> = the <I>loop</I> command identifier</LI>\r
+ <LI><B>command</B> = a command name (jdbs, cpt)</LI>\r
+ <LI><B>var</B> = a command identifier</LI>\r
+ <LI><B>equals</B> = a string value</LI>\r
+ </UL>\r
+ </DD>\r
+ <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">exitloop</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">loop2</SPAN>" <SPAN CLASS="par">command</SPAN>="<SPAN CLASS="val">cpt</SPAN>" <SPAN CLASS="par">var</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">equals</SPAN>=<SPAN CLASS="val">"4</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="if"></A><U>IfCommand</U></H4>\r
+<DL>\r
+ <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>name</B> = the command identifier</LI>\r
+ <LI><B>command</B> = a command name (jdbc, cpt)</LI>\r
+ <LI><B>var</B> = a command identifier</LI>\r
+ <LI><B>equals</B> = a string value</LI>\r
+ </UL>\r
+ </DD>\r
+ <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">if</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">if2</SPAN>" <SPAN CLASS="par">command</SPAN>="<SPAN CLASS="val">cpt</SPAN>" <SPAN CLASS="par">var</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">equals</SPAN>="<SPAN CLASS="val">2</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H4><A NAME="loop"></A><U>LoopCommand</U></H4>\r
+<DL>\r
+ <DD>Parameters:</DD>\r
+ <DD>\r
+ <UL>\r
+ <LI><B>name</B> = the command identifier</LI>\r
+ </UL>\r
+ </DD>\r
+ <DD>Example:</DD>\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd">loop</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">loop2</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+ <H2><A NAME="example"></A>Example</H2>\r
+ The following example, display the four first columns of the three first\r
+ lines of the users database.\r
+<DIV CLASS="box">\r
+<PRE>\r
+ <SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#jdbc">jdbc</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result2</SPAN>" <SPAN CLASS="par">select</SPAN>="<SPAN CLASS="val">SELECT * FROM users</SPAN>"\r
+ <SPAN CLASS="par">user</SPAN>="<SPAN CLASS="val">bmahe</SPAN>" <SPAN CLASS="par">password</SPAN>=""\r
+ <SPAN CLASS="par">url</SPAN>="<SPAN CLASS="val">jdbc:msql://www43.inria.fr:4333/users</SPAN>"\r
+ <SPAN CLASS="par">driver</SPAN>="<SPAN CLASS="val">com.imaginary.sql.msql.MsqlDriver</SPAN>" --></SPAN>\r
+\r
+ <table border=2>\r
+ <SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#counter">cpt</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">init</SPAN>="<SPAN CLASS="val">0</SPAN>" --></SPAN>\r
+ <tr><td><b>Name </td><td><b>Login</td>\r
+ <td><b>Email</td><td><b>Age </td></tr>\r
+ <SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#loop">loop</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">loop2</SPAN>" --></SPAN>\r
+ \r
+ <SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#jdbc">jdbc</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result2</SPAN>" <SPAN CLASS="par">nex</SPAN>t="<SPAN CLASS="val">true</SPAN>" --></SPAN>\r
+ \r
+ <tr>\r
+ <td>\r
+ <SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#jdbc">jdbc</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result2</SPAN>" <SPAN CLASS="par">column</SPAN>="<SPAN CLASS="val">1</SPAN>" --></SPAN>\r
+ </td><td>\r
+ <SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#jdbc">jdbc</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result2</SPAN>" <SPAN CLASS="par">column</SPAN>="<SPAN CLASS="val">2</SPAN>" --></SPAN>\r
+ </td><td>\r
+ <SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#jdbc">jdbc</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result2</SPAN>" <SPAN CLASS="par">column=</SPAN>"<SPAN CLASS="val">3</SPAN>" --></SPAN>\r
+ </td><td>\r
+ <SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#jdbc">jdbc</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result2</SPAN>" <SPAN CLASS="par">column</SPAN>="<SPAN CLASS="val">4</SPAN>" --></SPAN>\r
+ </td>\r
+ </tr>\r
+ \r
+ <SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#counter">cpt</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">incr</SPAN>="<SPAN CLASS="val">1</SPAN>" --></SPAN>\r
+ <SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#exitloop">exitloop</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">loop2</SPAN>" <SPAN CLASS="par">command</SPAN>="<SPAN CLASS="val">cpt</SPAN>" <SPAN CLASS="par">var</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">equals</SPAN>="<SPAN CLASS="val">3</SPAN>" --></SPAN>\r
+ <SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#endloop">endloop</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">loop2</SPAN>" --></SPAN>\r
+ \r
+ </table>\r
+\r
+ counter value : <SPAN CLASS="ssi"><!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#counter">cpt</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">value</SPAN>="<SPAN CLASS="val">true</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+ <p>\r
+ The result could be:\r
+ <CENTER>\r
+ <TABLE BORDER=2 >\r
+ <TR>\r
+ <TD><B>Name</B></TD>\r
+ <TD><B>Login</B></TD>\r
+ <TD><B>Email</B></TD>\r
+ <TD><B>Age</B></TD>\r
+ </TR>\r
+ <TR>\r
+ <TD>Smith </TD>\r
+ <TD>ssmith </TD>\r
+ <TD>ssmith@example.org </TD>\r
+ <TD>25 </TD>\r
+ </TR>\r
+ <TR>\r
+ <TD>lafrim </TD>\r
+ <TD>ylafrim </TD>\r
+ <TD>lafrim@example.org </TD>\r
+ <TD>25 </TD>\r
+ </TR>\r
+ <TR>\r
+ <TD>Teole </TD>\r
+ <TD>pteole </TD>\r
+ <TD>teole@example.org </TD>\r
+ <TD>27 </TD>\r
+ </TR>\r
+ </TABLE>\r
+ </CENTER>\r
+ <CENTER>counter value : 3</CENTER>\r
+ </div> <!-- body -->\r
+ <div class="footer">\r
+ <HR noshade>\r
+ <a href="mailto:jigsaw@w3.org">Jigsaw Team</a><br>\r
+ <span class="mini">\r
+ $Id: SSI.html,v 1.1 2010/06/15 12:23:02 smhuang Exp $\r
+ </span>\r
+ <p class="policyfooter">\r
+ <font size=-1>\r
+ <a href="/Consortium/Legal/ipr-notice.html#Copyright">Copyright</a>\r
+ © 1999 <a href="http://www.w3.org">W3C</a> \r
+ (<a href="http://www.lcs.mit.edu">MIT</a>, \r
+ <a href="http://www.inria.fr/">INRIA</a>, \r
+ <a href="http://www.keio.ac.jp/">Keio</a> ), \r
+ All Rights Reserved. W3C \r
+ <a href="/Consortium/Legal/ipr-notice.html#Legal Disclaimer">\r
+ liability,\r
+ </a>\r
+ <a href="/Consortium/Legal/ipr-notice.html#W3C Trademarks">\r
+ trademark\r
+ </a>, \r
+ <a href="/Consortium/Legal/copyright-documents.html">\r
+ document use \r
+ </a>\r
+ and\r
+ <a href="/Consortium/Legal/copyright-software.html">\r
+ software licensing\r
+ </a> rules apply. Your interactions with this site are in\r
+ accordance with our \r
+ <a href="/Consortium/Legal/privacy-statement.html#Public">\r
+ public\r
+ </a> and \r
+ <a href="/Consortium/Legal/privacy-statement.html#Members">\r
+ Member\r
+ </a>\r
+ privacy statements.</font>\r
+ </div>\r
+ </BODY>\r
+</HTML>\r