ilene       2003/02/20 10:49:17

  Modified:    java/xdocs/sources/xalan samples.xml readme.xml
                        usagepatterns.xml
  Log:
  Committing Christine Li's ([EMAIL PROTECTED]) patch to the servlet sample 
documentation.
  Bugzilla #17136
  
  Revision  Changes    Path
  1.51      +29 -28    xml-xalan/java/xdocs/sources/xalan/samples.xml
  
  Index: samples.xml
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/samples.xml,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- samples.xml       4 Feb 2003 20:36:17 -0000       1.50
  +++ samples.xml       20 Feb 2003 18:49:17 -0000      1.51
  @@ -208,11 +208,13 @@
       </s2><anchor name="servlet"/>
       <s2 title="servlet">
      <p>For a general introduction, see <link idref="usagepatterns" 
anchor="servlet">Using &xslt4j; in a servlet</link>.</p>
  -    <p>The servlet subdirectory contains four sample servlets that use &xslt4j; to 
perform transformations. These servlets 
  -    are in a package named servlet and are compiled in xalanservlet.jar. To run 
these samples, you must place 
  -    xalanservlet.jar, and any XML and XSL files you want to use on a web server 
with a servlet engine, place 
  -    xalanservlet.jar, xalan.jar, and &xml4j-jar; on the servlet engine class path, 
and configure the servlet engine to
  -    locate the XML and XSL files, and the properties file used by ApplyXSL.</p>
  +    <p>The servlet subdirectory contains four sample servlets and one JSP that use 
&xslt4j; to perform transformations. The sample 
  +    code is compiled and packed in xalanservlet.war. To run these samples, you must 
place 
  +    xalanservlet.war on a web server with a servlet engine. For example, using 
<jump href="http://jakarta.apache.org/tomcat/index.html";>jakarta-tomcat 4.1.18</jump>. 
  +    Copy the xalanservlet.war to %Tomcat_Home%/webapps. For more detail about 
deploying
  +    servlet on Tomcat, please refer to <jump 
href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/appdev/deployment.html";>Deployment
 Organization</jump>.</p>
  +    <note>Dependency on Tomcat version. If encountering "java.lang.VerifyError: 
Cannot inherit from final class" error, 
  +    replace XercesImpl.jar under %Tomcat_Home%/common/endorsed with the one 
included with &xslt4j; .</note>
       <p><link anchor="simplexsltservlet">servlet.SimpleXSLTServlet</link> applies a 
particular stylesheet to a particular 
       XML document.</p> 
       <p><link 
anchor="usestylesheetparamservlet">servlet.UseStylesheetParamServlet</link> sets a 
stylesheet parameter 
  @@ -227,12 +229,11 @@
       stylesheet to apply based on the identity of the client browser/device.</p>
       <anchor name="simplexsltservlet"/>
       <s3 title="servlet.SimpleXSLTServlet">
  -    <p>What it does: servlet.SimpleXSLTServlet applies the spec.xsl stylesheet to 
trax.xml (see the <link anchor="get-trax">
  -    get-trax applet</link>) and returns the transformation result to the HTTP 
client.</p>
  -    <p>To run this servlet: place spec.xsl and trax.xml (from the 
samples/AppletXMLtoHTML directory) in the directory where your servlet engine
  -    looks for HTTP documents, place xalanservlet.jar on the servlet engine 
classpath, and set up an HTML page to call the servlet as
  +    <p>What it does: servlet.SimpleXSLTServlet applies the birds.xsl stylesheet to 
birds.xml 
  +    and returns the transformation result to the HTTP client.</p>
  +    <p>To run this servlet: set up an HTML page to call the servlet as
       follows:</p>
  -<gloss><label>http://localhost/servlethome/servlet.SimpleXSLTServlet</label></gloss>
  +<gloss><label>http://localhost:port/xalanservlet/SimpleXSLTServlet</label></gloss>
        </s3><anchor name="usestylesheetparamservlet"/>
        <s3 title="servlet.UseStylesheetParamServlet">
        <note>Paul Campbell &lt;[EMAIL PROTECTED]&gt; wrote this servlet and the 
following explanatory text.
  @@ -240,15 +241,11 @@
        <p>What it does: The client (perhaps an HTML form ) specifies an XML document, 
a stylesheet, and a value to be passed
         to the stylesheet for a stylesheet parameter named "param1". The servlet 
performs the transformation and returns
         the output to the client. The client must specify which stylesheet 
(containing a "param1" stylesheet parameter") 
  -      and XML file are to be used.</p>
  -     <p>How to run it: Configure your application server (Tomcat, Websphere or 
JServ, for example)
  -     so it can find servlet.UseStylesheetParamServlet (in xalanservlet.jar) as well 
as the XML document 
  -     and XSL stylesheet. For example, you can copy fooparam.xml and fooparam.xsl 
from samples/servlet to the application 
  -     server root directory for documents.</p>
  -     <p>Then you can set up an HTML client to call the servlet with arguments along 
the lines of</p>
  -    <gloss><label>http://localhost/servlethome/servlet.UseStylesheetParamServlet?
  +      and XML file are to be used or use sample files fooparam.xml and 
fooparam.xsl</p>
  +     <p>How to run it: set up an HTML client to call the servlet with arguments 
along the lines of</p>
  +    <gloss><label>http://localhost:port/xalanservlet/UseStylesheetParamServlet?
       XML=fooparam.xml&amp;XSL=fooparam.xsl&amp;PVAL=GoodBye</label></gloss>
  -     <p>In the doGet() method, the servlet obtains the PVAL value "GoodBye") from 
the servlet request and passes it to the 
  +     <p>In the doGet() method, the servlet obtains the PVAL value "GoodBye" from 
the servlet request and passes it to the 
        stylesheet as the paramValue argument in a Transformer setParameter() call:</p>
         <p><code>String paramValue = 
httpServletRequest.getParameter("PVAL");</code><br/>
         <code>...</code><br/>
  @@ -261,29 +258,33 @@
        <p>This Java Server Page performs essentially the same operation as 
        <link 
anchor="usestylesheetparamservlet">servlet.UseStylesheetParamServlet</link>. It 
applies a stylesheet parameter 
         to a stylesheet (fooparam.xsl), applies the stylesheet to an XML source 
document (fooparam.xml), and returns the
  -      result.</p>     
  +      result.</p>
  +      <p>Call JSP as follows:</p>
  +      <gloss><label>http://localhost:port/xalanservlet/jspSample.jsp?
  +    XML=fooparam.xml&amp;XSL=fooparam.xsl&amp;PMA=GoodBye</label></gloss>
  +      <p>The JSP obtains the PMA value "GoodBye" from the http request and passes 
it to the stylesheet as the 
  +      paramValue argument in a Transformer setParameter() call.</p>    
        </s3><anchor name="xsltservletwithparams"/>
        <s3 title="servlet.XSLTServletWithParams">
        <p>What it does: servlet.XSLTServletWithParams takes parameters in the request 
-- a URL parameter for
        the XML input document URL and an xslURL parameter for the stylesheet URL.</p>
        <p>To use XSLTServletWithParams to perform the same transformation as 
SimplestServlet: 
  -     place spec.xsl and trax.xml in the directory where your servlet engine looks 
for HTTP documents, place
  -     xalanservlet.jar on the servlet engine classpath, and set up an HTML page to 
call the servlet as follows:</p>
  
-<gloss><label>http://localhost/servlethome/servlet.XSLTServletWithParams?URL=file:trax.xml&amp;
  -xslURL=file:spec.xsl</label></gloss>
  +     use birds.xsl and birds.xml as examples. Set up an HTML page to call the 
servlet as follows:</p>
  
+<gloss><label>http://localhost:port/xalanservlet/XSLTServletWithParams?URL=birds.xml&amp;
  +xslURL=birds.xsl</label></gloss>
        <p>If the XML document contains an associated stylesheet (a stylesheet 
Processing Instruction) that you want to use, simply omit the
        xslURL parameter.</p>
  -     <p>If the stylesheet takes stylesheet parameters, you can include them in the 
URL. For example to set set the param1
  +     <p>If the stylesheet takes stylesheet parameters, you can include them in the 
URL. For example to set the param1
        stylesheet parameter to foo, include param1=foo in the URL.</p>
        </s3><anchor name="applyxslt"/>
        <s3 title="servlet.ApplyXSLT">
       <p>What it does: The client (which you must set up) specifies an XML document 
and a stylesheet. The servlet
        performs the transformation and returns the output to the client. You can use 
media.properties to specify 
       which stylesheet is to be used depending on the client browser/device.</p>
  -    <note>The source files for this servlet include ApplyXSLT.java, 
ApplyXSLTProperties.java, DefaultApplyXSLTProperties.java,
  -    ApplyXSLTListener.java, and ApplyXSLTException.java.</note>
  -    <p>To run the servlet: put xalanservlet.jar on the servlet engine classpath, 
configure your servlet engine so it can find the 
  -     stylesheets and properties file in the servlet subdirectory (and in 
xalanservlet.jar), and set up an HTML page to call
  +    <note>The source files for this servlet, including ApplyXSLT.java, 
ApplyXSLTProperties.java, DefaultApplyXSLTProperties.java,
  +    ApplyXSLTListener.java, ApplyXSLTException.java. booklist1.xsl, booklist2.xsl 
and catalog.xml,
  +    are provided for testing.</note>
  +    <p>To run the servlet:  set system property server.root=server root. Set up an 
HTML page to call
        servlet.ApplyXSLT with arguments as illustrated below.</p>
       <p>The files foo.xml and foo.xsl used in the following example are created by 
the user. Good 
       examples for these files are birds.xml/birds.xsl and foo.xml/foo.xsl under the 
SimpleTransform 
  
  
  
  1.88      +1 -1      xml-xalan/java/xdocs/sources/xalan/readme.xml
  
  Index: readme.xml
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/readme.xml,v
  retrieving revision 1.87
  retrieving revision 1.88
  diff -u -r1.87 -r1.88
  --- readme.xml        27 Jan 2003 18:45:36 -0000      1.87
  +++ readme.xml        20 Feb 2003 18:49:17 -0000      1.88
  @@ -335,7 +335,7 @@
          <tr><td>compile</td><td>compiles &xslt4j; in build/classes.</td></tr>
          <tr><td>jar (the default)</td><td>creates xalan.jar in the build 
directory</td></tr>
          <tr><td>samples</td><td>compiles and jars the sample apps in 
build/xalansamples.jar</td></tr>
  -       <tr><td>servlet</td><td>compiles and jars the sample servlet in 
build/xalanservlet.jar</td></tr>       
  +       <tr><td>servlet</td><td>compiles and jars the sample servlet in 
build/xalanservlet.war</td></tr>       
          <tr><td>docs</td><td>creates the HTML User's Guide in build/docs</td></tr>
          <tr><td>javadocs</td><td>generates the API documentation in 
./build/docs/apidocs</td></tr>
          <tr><td>dist</td><td>generates a complete distribution tree with zip and 
tar.gz distribution files in build</td></tr>
  
  
  
  1.52      +6 -3      xml-xalan/java/xdocs/sources/xalan/usagepatterns.xml
  
  Index: usagepatterns.xml
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/usagepatterns.xml,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- usagepatterns.xml 27 Jan 2003 18:45:36 -0000      1.51
  +++ usagepatterns.xml 20 Feb 2003 18:49:17 -0000      1.52
  @@ -415,7 +415,8 @@
   <p>You can set up a servlet to use &xslt4j; to respond to requests for XML 
documents by transforming those documents into HTML and serving them to web browsers. 
To respond to HTTP GET requests, all you need to do is overwrite the HttpServlet 
doGet() method with a procedure that instantiates a Transformer and uses it to perform 
a transformation. As the following example shows, you can generate a ResultStream that 
a PrintWriter writes to the HttpResponse OutputStream, returning the transformation 
output to the web browser.</p>
   <source>
   public class SampleXSLTServlet extends javax.servlet.http.HttpServlet {
  -  
  +
  +  public final static String FS = System.getProperty("file.separator"); 
     // Respond to HTTP GET requests from browsers.
     public void doGet (javax.servlet.http.HttpServletRequest request,
                        javax.servlet.http.HttpServletResponse response)
  @@ -429,14 +430,16 @@
       {        
         javax.xml.transform.TransformerFactory tFactory = 
                   javax.xml.transform.TransformerFactory.newInstance();
  +      //get the real path for xml and xsl files.
  +      String ctx = getServletContext().getRealPath("") + FS;        
         // Get the XML input document and the stylesheet, both in the servlet
         // engine document directory.
         javax.xml.transform.Source xmlSource = 
                   new javax.xml.transform.stream.StreamSource
  -                             (new java.net.URL("file:foo.xml").openStream());
  +                             (new java.net.URL("file", "", 
ctx+"foo.xml").openStream());
         javax.xml.transform.Source xslSource = 
                   new javax.xml.transform.stream.StreamSource
  -                             (new java.net.URL("file:foo.xsl").openStream());
  +                             (new java.net.URL("file", "", 
ctx+"foo.xsl").openStream());
         // Generate the transformer.
         javax.xml.transform.Transformer transformer = 
                                tFactory.newTransformer(xslSource);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to