struts-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r877899 [9/11] - in /websites/staging/struts/trunk/content: ./ css/ dev/ images/
Date Tue, 10 Sep 2013 12:01:50 GMT
Modified: websites/staging/struts/trunk/content/primer.html
==============================================================================
--- websites/staging/struts/trunk/content/primer.html (original)
+++ websites/staging/struts/trunk/content/primer.html Tue Sep 10 12:01:49 2013
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at Sep 5, 2013
+ | Generated by Apache Maven Doxia at Sep 10, 2013
  | Rendered using Apache Maven Fluido Skin 1.3.0
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20130905" />
+    <meta name="Date-Revision-yyyymmdd" content="20130910" />
     <meta http-equiv="Content-Language" content="en" />
     <title>
         Key Technologies Primer</title>
@@ -20,7 +20,7 @@
 
     
             </head>
-        <body class="topBarDisabled">
+        <body class="topBarEnabled">
           
     
     
@@ -33,262 +33,148 @@
         alt="Fork me on GitHub">
     </a>
   
-                
-                    
-    
-        <div class="container-fluid">
-          <div id="banner">
-        <div class="pull-left">
-                                    <a href="http://www.apache.org/" id="bannerLeft">
-                                                                                        <img src="http://www.apache.org/images/asf-logo.gif"  alt="Apache Software Foundation"/>
-                </a>
-                      </div>
-        <div class="pull-right">                                <a href="../" id="bannerRight">
-                                                                                                <img src="images/struts.gif"  alt="Apache Struts"/>
-                </a>
-      </div>
-        <div class="clear"><hr/></div>
-      </div>
-
-      <div id="breadcrumbs">
-        <ul class="breadcrumb">
-                
+                        
                     
-                  <li id="publishDate">Last Published: 2013-09-05</li>
-                      
                 
-                    
-      
-                                              
-    <li class="pull-right">              <a href="../release/1.3.x/index.html" title="Struts 1 (EOL)">
-        Struts 1 (EOL)</a>
-  </li>
-
-        <li class="divider pull-right">|</li>
-      
-    <li class="pull-right">              <a href="../release/2.3.x/index.html" title="Struts 2">
-        Struts 2</a>
-  </li>
-
-        <li class="divider pull-right">|</li>
-      
-    <li class="pull-right">              <a href="http://www.apache.org/" class="externalLink" title="Apache">
-        Apache</a>
-  </li>
-
-                        </ul>
-      </div>
 
+    <div id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+                                  <div class="container"><div class="nav-collapse">
             
-      <div class="row-fluid">
-        <div id="leftColumn" class="span3">
-          <div class="well sidebar-nav">
                 
-                    
-                <ul class="nav nav-list">
-                    <li class="nav-header">Apache Struts</li>
-                                
-      <li>
-    
-                          <a href="index.html" title="Welcome">
-          <i class="none"></i>
-        Welcome</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="downloads.html" title="Releases">
-          <i class="none"></i>
-        Releases</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="announce.html" title="Announcements">
-          <i class="none"></i>
-        Announcements</a>
-            </li>
+                                <ul class="nav">
+                          <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Struts <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="index.html"  title="Welcome">Welcome</a>
+</li>
                   
-      <li>
-    
-                          <a href="http://www.apache.org/licenses/" class="externalLink" title="License">
-          <i class="none"></i>
-        License</a>
-            </li>
+                      <li>      <a href="downloads.html"  title="Downloads">Downloads</a>
+</li>
                   
-      <li>
-    
-                          <a href="kickstart.html" title="Kickstart FAQ">
-          <i class="none"></i>
-        Kickstart FAQ</a>
-            </li>
+                      <li>      <a href="announce.html"  title="Announcements">Announcements</a>
+</li>
                   
-      <li>
-    
-                          <a href="http://people.apache.org/~vgritsenko/stats/projects/struts" class="externalLink" title="Website Stats">
-          <i class="none"></i>
-        Website Stats</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="http://apache.org/foundation/thanks.html" class="externalLink" title="Thanks!">
-          <i class="none"></i>
-        Thanks!</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="http://apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">
-          <i class="none"></i>
-        Sponsorship</a>
-            </li>
-                              <li class="nav-header">Documentation</li>
-                                
-      <li class="active">
-    
-            <a href="#"><i class="none"></i>Key Technologies</a>
-          </li>
+                      <li>      <a href="http://www.apache.org/licenses/"  title="License">License</a>
+</li>
+                  
+                      <li>      <a href="http://apache.org/foundation/thanks.html"  title="Thanks!">Thanks!</a>
+</li>
+                  
+                      <li>      <a href="http://apache.org/foundation/sponsorship.html"  title="Sponsorship">Sponsorship</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Support <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="mail.html"  title="User Mailing List">User Mailing List</a>
+</li>
                   
-      <li>
-    
-                          <a href="../release/2.3.x/index.html" title="Struts 2.3.15.1 (GA)">
-          <i class="none"></i>
-        Struts 2.3.15.1 (GA)</a>
-            </li>
+                      <li>      <a href="https://issues.apache.org/jira/browse/WW"  title="Issue Tracker">Issue Tracker</a>
+</li>
                   
-      <li>
-    
-                          <a href="../release/1.3.x/index.html" title="Struts 1.3.10 (GA) - EOL">
-          <i class="none"></i>
-        Struts 1.3.10 (GA) - EOL</a>
-            </li>
+                      <li>      <a href="security.html"  title="Reporting Security Issues">Reporting Security Issues</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="birdseye.html"  title="Birds Eye">Birds Eye</a>
+</li>
                   
-      <li>
-    
-                          <a href="downloads.html#PriorReleases" title="Prior Releases">
-          <i class="none"></i>
-        Prior Releases</a>
-            </li>
-                              <li class="nav-header">Support</li>
-                                
-      <li>
-    
-                          <a href="mail.html" title="User Mailing List">
-          <i class="none"></i>
-        User Mailing List</a>
-            </li>
+                      <li>      <a href="primer.html"  title="Key Technologies">Key Technologies</a>
+</li>
                   
-      <li>
-    
-                          <a href="https://issues.apache.org/jira/browse/WW" class="externalLink" title="Issue Tracker (JIRA)">
-          <i class="none"></i>
-        Issue Tracker (JIRA)</a>
-            </li>
+                      <li>      <a href="kickstart.html"  title="Kickstart FAQ">Kickstart FAQ</a>
+</li>
                   
-      <li>
-    
-                          <a href="security.html" title="Reporting Security Issues">
-          <i class="none"></i>
-        Reporting Security Issues</a>
-            </li>
-                              <li class="nav-header">Development</li>
-                                
-      <li>
-    
-                          <a href="../development/2.x/index.html" title="Struts 2.x Draft Docs">
-          <i class="none"></i>
-        Struts 2.x Draft Docs</a>
-            </li>
+                      <li>      <a href="../release/2.3.x/index.html"  title="Struts 2.3.x">Struts 2.3.x</a>
+</li>
+                  
+                      <li>      <a href="../release/1.3.x/index.html"  title="Struts 1.3.x">Struts 1.3.x</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="youatstruts.html"  title="You at Struts">You at Struts</a>
+</li>
                   
-      <li>
-    
-                          <a href="struts1eol-announcement.html" title="Struts 1.x EOL Announcement">
-          <i class="none"></i>
-        Struts 1.x EOL Announcement</a>
-            </li>
+                      <li>      <a href="helping.html"  title="How to Help FAQ">How to Help FAQ</a>
+</li>
                   
-      <li>
-    
-                          <a href="helping.html" title="How to Help FAQ">
-          <i class="none"></i>
-        How to Help FAQ</a>
-            </li>
+                      <li>      <a href="dev/dev-mail.html"  title="Development Lists">Development Lists</a>
+</li>
                   
-      <li>
-    
-                          <a href="dev/dev-mail.html" title="Development Lists">
-          <i class="none"></i>
-        Development Lists</a>
-            </li>
+                      <li>      <a href="dev/git-for-struts.html"  title="Git for Struts">Git for Struts</a>
+</li>
                   
-      <li>
-    
-                          <a href="dev/builds.html" title="Source Code">
-          <i class="none"></i>
-        Source Code</a>
-            </li>
+                      <li>      <a href="dev/troubleshooting-git-svn.html"  title="Troubleshooting Git-Svn">Troubleshooting Git-Svn</a>
+</li>
                   
-      <li>
-    
-                          <a href="dev/releases.html" title="Release Guidelines">
-          <i class="none"></i>
-        Release Guidelines</a>
-            </li>
+                      <li>      <a href="dev/builds.html"  title="Source Code">Source Code</a>
+</li>
                   
-      <li>
-    
-                          <a href="dev/bylaws.html" title="PMC Charter">
-          <i class="none"></i>
-        PMC Charter</a>
-            </li>
+                      <li>      <a href="dev/releases.html"  title="Release Guidelines">Release Guidelines</a>
+</li>
                   
-      <li>
-    
-                          <a href="dev/minutes.html" title="Minutes">
-          <i class="none"></i>
-        Minutes</a>
-            </li>
+                      <li>      <a href="dev/bylaws.html"  title="PMC Charter">PMC Charter</a>
+</li>
                   
-      <li>
-    
-                          <a href="dev/volunteers.html" title="Volunteers">
-          <i class="none"></i>
-        Volunteers</a>
-            </li>
+                      <li>      <a href="dev/volunteers.html"  title="Volunteers">Volunteers</a>
+</li>
                   
-      <li>
-    
-                          <a href="../struts-sandbox/index.html" title="Sandbox">
-          <i class="none"></i>
-        Sandbox</a>
-            </li>
-                  
-      <li>
+                      <li>      <a href="http://svn.apache.org/viewvc/struts/"  title="Source Repository">Source Repository</a>
+</li>
+                          </ul>
+      </li>
+                  </ul>
+          
+          
+                                                              
+                   
+                      </div>
+          
+        </div>
+      </div>
+    </div>
     
-                          <a href="http://svn.apache.org/viewvc/struts/" class="externalLink" title="Source Repository">
-          <i class="none"></i>
-        Source Repository</a>
-            </li>
-            </ul>
+        <div class="container">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../" id="bannerLeft">
+                                                                                                <img src="images/struts.gif"  alt="Apache Struts"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org" id="bannerRight">
+                                                                                                <img src="images/asf-logo.gif"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
                 
                     
+                  <li id="publishDate">Last Published: 2013-09-10</li>
+                      
                 
-          <hr class="divider" />
+                    
+      
+                            </ul>
+      </div>
 
-           <div id="poweredBy">
-                            <div class="clear"></div>
-                            <div class="clear"></div>
-                            <div class="clear"></div>
-                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
-        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
-      </a>
-                  </div>
-          </div>
-        </div>
-        
+      
                 
-        <div id="bodyColumn"  class="span9" >
+        <div id="bodyColumn" >
                                   
             <!-- Copyright 1999-2005 The Apache Software Foundation
 Licensed under the Apache License, Version 2.0 (the "License");
@@ -302,1603 +188,545 @@ distributed under the License is distrib
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License. --><!-- // ======================================================================== 78 -->
-
     
+        <h1>Key Technologies Primer</h1>
 
-        <div class="section"><h2>Key Technologies Primer<a name="Key_Technologies_Primer"></a></h2>
-
-            <blockquote><p><i>
-            &quot;The time has come,&quot; the Walrus said, &quot;To talk of many things: 
-            Of shoes -- and ships -- and sealing-wax -- Of cabbages -- and kings -- 
-            And why the sea is boiling hot -- And whether pigs have wings.&quot; 
-            </i></p></blockquote>
-
-
-            <a name="suspects"></a>
-            <div class="section"><h3>The Usual Suspects<a name="The_Usual_Suspects"></a></h3>
-
-                <p>
-                    The framework documentation is written for active web 
-                    developers and assumes a working
-                    knowledge about how Java web applications are built.
-                    Before getting started, you should
-                    understand the basics of several key technologies:
-                </p>
-
-                <ul>
-                    <li>
-                        <a href="#http">HTTP, HTML, and User Agents</a>
-                    </li>
-                    <li>
-                        <a href="#cycle">The HTTP Request/Response Cycle</a>
-                    </li>
-                    <li>
-                        <a href="#javascript">JavaScript, AJAX, and SOAP</a>
-                    </li>
-                    <li>
-                        <a href="#java">The Java Language and Application
-                            Frameworks</a>
-                    </li>
-                    <li>
-                        <a href="#javabeans">JavaBeans</a>
-                    </li>
-                    <li>
-                        <a href="#resources">Properties Files and
-                            ResourceBundles</a>
-                    </li>
-                    <li>
-                        <a href="#containers">Servlets, Filters and Web Containers</a>
-                    </li>
-                    <li>
-                        <a href="#jsp">JavaServer Pages and JSP Tag
-                            Libraries</a>
-                    </li>
-                    <li>
-                        <a href="#xml">Extensible Markup Language (XML)</a>
-                    </li>
-                    <li>
-                        <a href="#jaas">JAAS</a>
-                    </li>
-                    <li>
-                        <a href="#mvc">Model View Controller</a>
-                    </li>
-                </ul>
-                
-                <p>
-                    This primer briefly defines each of these technologies
-                    but does not describe them in detail.
-                    For your convenience, links to further information are
-                    provided if you would like to learn more about a
-                    technology.
-                </p>
-
-                <p> 
-                    If you are familiar with Java,
-                    but not these technologies,
-                    the best overall starting point is
-                    <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/index.html">
-                        The J2EE Tutorial.
-                    </a>
-                    The tutorial is also available for download in
-                    <a class="externalLink" href="http://java.sun.com/webservices/docs/1.0/tutorial/doc/JavaWSTutorial.pdf">
-                        PDF</a>
-                    format.
-                </p>
-
-                <p>
-                    If you've created web applications for other platforms, you
-                    may be able to follow along
-                    and visit the other references as needed. The core
-                    technologies used by the framework are
-                    also used by most other Java web development products, so
-                    the background information will be
-                    useful in any Java project.
-                </p>
-
-                <p>
-                    If you are not familiar with the Java language
-                    generally,
-                    then the best starting point is
-                    <a class="externalLink" href="http://java.sun.com/docs/books/tutorial/index.html">
-                        The Java Tutorial.
-                    </a>
-                    This overlaps with The J2EE Tutorial in some
-                    places, but the two work well together.
-                </p>
-
-                <p>
-                    For more about building Java application in general, see
-                    the
-                    <a class="externalLink" href="http://java.sun.com/developer/onlineTraining/new2java/">
-                        New to
-                        Java Center.</a>
-                </p>
-
-            </div>
-
-            <a name="http"></a>
-            <div class="section"><h3>HTTP, HTML and User Agents<a name="HTTP_HTML_and_User_Agents"></a></h3>
-
-                <p> 
-                    The World Wide Web was built over the Hypertext Transfer
-                    Protocol
-                    <a class="externalLink" href="http://www.ietf.org/rfc/rfc2616.txt?number=2616">
-                        (HTTP)</a>
-                    and the Hypertext Markup Language
-                    <a class="externalLink" href="http://www.w3.org/MarkUp/">(HTML).</a>
-                    A User Agent, like a web browser, uses HTTP to request
-                    a HTML document. The browser then formats and displays the
-                    document to its user. HTTP is used to
-                    transport more than HTML, but HTML is the lingua franca of
-                    the Web and web applications.
-                </p>
-
-                <p>
-                    While building web applications, some Java developers 
-                    write their own HTML. Others leave that responsibility to
-                    the
-                    page designers.</p>
-
-                <p>For more about HTTP, HTML, and User Agents, see:</p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://www.w3.org/MarkUp/Guide/">
-                            Getting started with HTML
-                        </a>
-                        by Dave Raggett
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/HTTP.html">
-                            HTTP Overview
-                        </a>
-                        in The J2EE Tutorial.
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://www.rfc-editor.org/rfc/rfc2616.txt">
-                            HTTP/1.1
-                            
-                        </a>
-                        Specification
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://www.rfc-editor.org/rfc/rfc2617.txt">
-                            HTTP
-                                Basic and Digest Authentication
-                        </a>
-                        Specification
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://www.rfc-editor.org/rfc/rfc2109.txt">
-                            State
-                                Management Mechanism
-                        </a>
-                        Specification (Cookies)
-                    </li>
-                </ul>
-            </div>
-
-            <a name="cycle"></a>
-            <div class="section"><h3>The HTTP Request/Response cycle<a name="The_HTTP_RequestResponse_cycle"></a></h3>
-
-                <p>
-                    A very important part of HTTP for the web developer is the
-                    request/response cycle. To use HTTP
-                    you have to make a request. A HTTP server, like a web
-                    server, is then obliged to respond. When you
-                    build your web application, you design it to react to a
-                    HTTP request by returning a HTTP response.
-                    Frameworks abstract much of these nuts and bolts, but it
-                    is important to understand
-                    what is happening behind the scenes.</p>
-
-                <p>If you are not familiar with the HTTP request/response
-                    cycle, we
-                    <b>strongly</b>
-                    recommend the
-                    <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/HTTP.html">
-                        HTTP Overview</a>
-                    in The J2EE Tutorial.
-                </p>
-
-            </div>
-
-            <a name="javascript"></a>
-            <div class="section"><h3>JavaScript, AJAX, and SOAP<a name="JavaScript_AJAX_and_SOAP"></a></h3>
-                    
-                    <p>
-                        A problem with the HTTP request/response cycle is that 
-                        it does not promote an interactive user interface. 
-                        Web developers often resort to scripting language, 
-                        like JavaScript, to make web applications more 
-                        interesting.
-                    </p>
-                    <p>
-                        An advanced usage of JavaScript, called AJAX, can  
-                        help developers create web applications that are as 
-                        interactive and responsive as desktop applications. 
-                    </p>
-                        
-                    <p>For more about JavaScript and AJAX, see</p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://en.wikipedia.org/wiki/JavaScript">
-                            Wikipedia - JavaScript</a>
-                    </li>                    
-                    <li>
-                        <a class="externalLink" href="http://www.adaptivepath.com/publications/essays/archives/000385.php">
-                            Ajax: A New Approach to Web Applications
-                        </a>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://en.wikipedia.org/wiki/AJAX">
-                            Wikipedia - AJAX</a>
-                    </li>
-                </ul>
-                
-                <p>
-                    Another technology that can enhance the HTTP 
-                    request/response cycle is SOAP. 
-                    Using SOAP, an application can access data and invoke 
-                    business logic on another server using HTTP as transfer 
-                    layer. 
-                    Using AJAX and SOAP together is becoming a popular way for 
-                    page to submit finely-grained requests directly to a 
-                    remote server, 
-                    while still retaining a separation of concerns beween the 
-                    the business logic and the page markup,. 
-                </p>    
-
-                <p>For more about SOAP, see</p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://en.wikipedia.org/wiki/SOAP">
-                            Wikipedia - SOAP</a>
-                    </li>                    
-                </ul>
-
-            </div>
-
-            <a name="java"></a>
-            <div class="section"><h3>The Java Language and Application Frameworks<a name="The_Java_Language_and_Application_Frameworks"></a></h3>
-
-                <p> 
-                    The framework is written in the popular and versatile
-                    <a class="externalLink" href="http://java.sun.com/docs/books/jls/first_edition/html/index.html">
-                        Java programming language.</a>
-                    Java is an object-orientated language, and the framework
-                    makes good use of many
-                    object-orientated techniques. In addition, Java natively
-                    supports the
-                    concept of
-                    <i>threads,</i>
-                    which allows more than one task to be
-                    performed at the same time. A good understanding of Java,
-                    and especially
-                    object-orientated programming (OOP) and threading, will
-                    help
-                    you get the most out of the framework and this User Guide.
-                </p>
-
-                <p>For more about Java and threads, see</p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/docs/books/tutorial/java/index.html">
-                            Learning the Java Language
-                        </a>
-                        in the Java Tutorial
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://docs.oracle.com/javase/tutorial/essential/concurrency/index.html">
-                            Threads: Doing Two or More Tasks At Once
-                        </a>
-                        in the Java Language
-                        Tutorial
-                    </li>
-                </ul>
-
-                <p> 
-                    Even if you have worked with Java and OOP before, it can
-                    also help to be aware of the
-                    programming challenges specific to creating and using
-                    application frameworks. For more about application
-                    frameworks, see the classic white papers</p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://www.laputan.org/drc/drc.html">
-                            Designing Reusable Classes
-                        </a>
-                        by Ralph E. Johnson &amp; Brian Foote
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://www.cs.wustl.edu/~schmidt/CACM-frameworks.html">
-                            Object-Oriented Application
-                                Frameworks
-                        </a>
-                        by Mohamed Fayad and Douglas C. Schmidt
-                    </li>
-                </ul>
-
-                <p> 
-                    These papers can be especially helpful if you are
-                    fact-finding or reviewing server-side
-                    <a class="externalLink" href="http://www.dmoz.org/Computers/Programming/Languages/Java/Enterprise_Edition/Libraries_and_Frameworks/">
-                        frameworks</a>
-                    .
-                </p>
-
-            </div>
-
-            <a name="javabeans"></a>
-            <div class="section"><h3>JavaBeans<a name="JavaBeans"></a></h3>
-
-                <p> 
-                    Like many Java applications, most of the framework objects
-                    are designed as
-                    <a class="externalLink" href="http://java.sun.com/products/javabeans/">
-                        JavaBeans.</a>
-                    Following the JavaBean design patterns makes
-                    the framework's classes easier to use -- both by Java
-                    developers and by Java development tools.
-                </p>
-
-                <p> 
-                    Although JavaBeans were first created for visual elements,
-                    these object design patterns have been found to
-                    be useful as the basis for any reusable component, like
-                    those used by the framework.</p>
-
-                <p>For more about JavaBeans, see:</p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/products/javabeans/docs/">
-                            The
-                                JavaBeans Component Architecture
-                                Documentation
-                        </a>
-                        page at
-                        <tt>java.sun.com,</tt>
-                        including a link to download the
-                        <a class="externalLink" href="http://java.sun.com/products/javabeans/docs/spec.html">
-                            JavaBeans 1.01 Specification</a>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/docs/books/tutorial/javabeans/index.html">
-                            The JavaBeans Trail
-                        </a>
-                        in the Java Tutorial
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPBeans.html">
-                            JavaBeans Components in JSP Pages
-                        </a>
-                        in The J2EE Tutorial
-                    </li>
-                </ul>
-
-            </div>
-
-            <a name="reflection"></a>
-            <div class="section"><h3>Reflection and Introspection<a name="Reflection_and_Introspection"></a></h3>
-
-                <p>
-                    Reflection is the process of determining which member
-                    fields and methods are available on an object.
-                    Introspection is a specialized form of reflection used by
-                    the JavaBean API.
-                    Using Introspection, we can determine which methods of a
-                    JavaBean are intended to be accessed by other objects.
-                    (The getters and the setters, for example.)
-                </p>
-
-                <p>
-                    The framework uses Introspection to convert HTTP
-                    parameters into JavaBean properties and to populate HTML
-                    fields from JavaBean properties.
-                    This technique makes it easy to &quot;roundtrip&quot; properties
-                    between HTML forms and JavaBeans.
-                </p>
-
-                <p>
-                    For more about Reflection and Introspection, see
-                </p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/docs/books/tutorial/reflect/">
-                            The Reflection Trail</a>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/products/javabeans/docs/spec.html">
-                            Chapter 8 of the JavaBeans API Specification</a>
-                    </li>
-                </ul>
-
-            </div>
-
-            <a name="maps"></a>
-            <div class="section"><h3>Maps<a name="Maps"></a></h3>
-
-                <p>
-                    JavaBeans store data as properties and may act on that
-                    data through other methods.
-                    JavaBeans are flexible and powerful objects but are not
-                    the only object that programmers use to store data.
-                    Another popular object is the Map 
-                    <tt>[java.util.Map].</tt>
-                    A Map is a simple collection of name and value pairs.
-                    Maps are often used &quot;behind the scenes&quot; as a flexible way
-                    to store dynamic data.
-                </p>
-
-            </div>
-
-
-            <a name="resources"></a>
-            <div class="section"><h3>Properties Files and ResourceBundles<a name="Properties_Files_and_ResourceBundles"></a></h3>
-
-                <p> 
-                    Java applications, including web applications, are often
-                    configured using
-                    <a class="externalLink" href="http://java.sun.com/j2se/1.4.1/docs/api/java/util/Properties.html">
-                        Properties</a>
-                    files. Properties files are the basis for the
-                    <a class="externalLink" href="http://java.sun.com/j2se/1.4.1/docs/api/java/util/ResourceBundle.html">
-                        ResourceBundles</a>
-                    that the framework uses to provide message resources
-                    to an application.
-                </p>
-
-                <p>For more about Properties files, see:</p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://docs.oracle.com/javase/tutorial/essential/environment/properties.html">
-                            Using Properties to Manage Program
-                                Attributes
-                        </a>
-                        in The Java Tutorial
-                    </li>
-                </ul>
-
-                <p>Java ResourceBundles use one or more Properties files to
-                    provide internationalized messages
-                    to users based their
-                    <a class="externalLink" href="http://java.sun.com/j2se/1.4.1/docs/api/java/util/Locale.html">
-                        Locale.</a>
-                    Support for localizing an application was built into the
-                    framework from the ground-up.
-                </p>
-
-                <p>For more about localization and ResourceBundles, see</p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/docs/books/tutorial/i18n/resbundle/concept.html">
-                            About the ResourceBundle Class
-                        </a>
-                        in the Java Tutorial
-                    </li>
-                </ul>
-
-            </div>
-
-            <a name="containers"></a>
-            <div class="section"><h3>Servlets, Filters, and Web Containers<a name="Servlets_Filters_and_Web_Containers"></a></h3>
-                <p>
-                    Since Java is an object-orientated language, the
-                    <a class="externalLink" href="http://www.novocode.com/doc/servlet-essentials/">
-                        Java Servlet</a>
-                    platform strives to cast HTTP into an object-orientated
-                    form.
-                    This strategy makes it easier for Java developers to
-                    concentrate on what they need their application to do --
-                    rather than the mechanics of HTTP.
-                </p>
-
-                <p>
-                    HTTP provides a standard mechanism for extending servers
-                    called the Common Gateway Interface, or CGI.
-                    The server can pass a request to a CGI-aware program, and
-                    the program will pass back a response.
-                    Likewise, a Java-aware server can pass a request to a
-                    servlet container.
-                    The container can fulfill the request or it can pass the
-                    request back to the HTTP server.
-                    The container decides whether it can handle the request by
-                    checking its list of servlets.
-                    If there is a servlet registered for the request, the
-                    container passes the request to the servlet.
-                </p>
-
-                <p>
-                    When a request comes in, the container checks to see if
-                    there is a servlet registered for that request.
-                    If there is a match,
-                    the request is given to the servlet.
-                    If not, the request is returned to the HTTP server.
-                </p>
-
-                <p>
-                    It's the container's job to manages the servlet lifecycle.
-                    The container creates the servlets, invokes the servlets,
-                    and ultimately disposes the servlets.
-                </p>
-
-                <p>
-                    A servlet is generally a subclass of
-                    <tt>javax.servlet.http.HttpServlet.</tt>
-                    A servlet must implement four methods, which are invoked
-                    by the container as needed:
-                </p>
-
-                <ul>
-                    <li>
-                        <b>public void init(ServletConfig
-                            config)</b>
-                        - Called by the
-                        servlet container when the servlet instance is first
-                        created, and
-                        before any request is processed.
-                    </li>
-                    <li>
-                        <b>public void doGet(HttpServletRequest request,
-                            HttpServletResponse response)</b>
-                        - Called to process a
-                        specific request received using the HTTP
-                        <tt>GET</tt>
-                        protocol,
-                        which generates a corresponding dynamic response.
-                    </li>
-                    <li>
-                        <b>public void doPost(HttpServletRequest request,
-                            HttpServletResponse response)</b>
-                        - Called to process a
-                        specific request received using the HTTP
-                        <tt>POST</tt>
-                        protocol,
-                        which generates a corresponding dynamic response.
-                    </li>
-                    <li>
-                        <b>public void destroy()</b>
-                        - Called by the servlet
-                        container when it takes this servlet instance out of
-                        service,
-                        such as when a web application is being undeployed or
-                        when the
-                        entire container is being shut down.
-                    </li>
-                </ul>
-
-                <p>
-                    The framework provides a ready-to-use servlet for your
-                    application 
-                    <tt>[org.apache.struts.action.ActionServlet].</tt>
-                    As a developer, you can then just write objects
-                    that the ActionServlet calls when needed.
-                    But it is still helpful to understand the  
-                    servlet essentials,
-                    and the role they play in a Java web application.
-                </p>
-
-                <p>
-                    For more about Java Servlets, see:
-                </p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/products/servlet/">
-                            The
-                                Java Servlet Technology
-                        </a>
-                        page at
-                        <tt>java.sun.com</tt>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/products/servlet/download.html">
-                            The
-                                Servlet 2.3 and 2.4 Specifications
-                        </a>
-                        download page at
-                        <tt>java.sun.com</tt>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets.html">
-                            Java Servlet Technology
-                        </a>
-                        in The J2EE Tutorial.
-                    </li>
-                </ul>
-
-            </div>
-
-            <a name="threads"></a>
-            <div class="section"><h3>Servlets and Threads<a name="Servlets_and_Threads"></a></h3>
-
-                <p>
-                    To boost performance, the container can multi-thread
-                    servlets.
-                    Only one instance of a particular servlet is created,
-                    and each request for that servlet passes through the same
-                    object.
-                    This strategy helps the container make the best use of
-                    available resources.
-                    The tradeoff is that the servlet's
-                    <tt>doGet()</tt>
-                    and
-                    <tt>doPost()</tt>
-                    methods must be programmed in a
-                    <i>thread-safe</i>
-                    manner.
-                </p>
-
-                <p>
-                    For more about servlets and thread-safety, see:
-                </p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets5.html#102985">
-                            Controlling Concurrent Access to Shared
-                            Resources</a>
-                        in The J2EE Tutorial.
-                    </li>
-                </ul>
-
-            </div>
-
-            <a name="context"></a>
-            <div class="section"><h3>Servlet Context<a name="Servlet_Context"></a></h3>
-
-                <p> 
-                    The
-                    <i>ServletContext</i>
-                    interface 
-                    <tt>[javax.servlet.ServletContext]</tt>
-                    defines a servlet's view of
-                    the web application within which the servlet is running.
-                    It is
-                    accessible in a servlet via the
-                    <tt>getServletConfig()</tt>
-                    method,
-                    and in a JSP page as the
-                    <tt>application</tt>
-                    implicit variable.
-                    Servlet contexts provide several APIs that are very useful
-                    in building web applications:
-                </p>
-                <ul>
-                    <li>
-                        <i>Access To Web Application Resources</i>
-                        - A servlet can
-                        access static resource files within the web
-                        application using the
-                        <tt>getResource()</tt>
-                        and
-                        <tt>getResourceAsStream()</tt>
-                        methods.
-                    </li>
-                    <li>
-                        <i>Servlet Context Attributes</i>
-                        - The context makes available
-                        a storage place for Java objects, identified by
-                        string-valued keys.
-                        These attributes are global to the entire web
-                        application, and may
-                        be accessed by a servlet using the
-                        <tt>getAttribute(),</tt>
-                        <tt>getAttributeNames(),</tt>
-                        <tt>removeAttribute(),</tt>
-                        and
-                        <tt>setAttribute()</tt>
-                        methods. From a JSP page, servlet
-                        context attributes are also known as &quot;application
-                        scope beans&quot;.
-                    </li>
-                </ul>
-
-                <p>
-                    For more about the servlet context, see:
-                </p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets10.html#75507">
-                            Accessing the Web Context</a>
-                        in The J2EE Tutorial.
-                    </li>
-                </ul>
-
-            </div>
-
-            <a name="request"></a>
-            <div class="section"><h3>Servlet Request<a name="Servlet_Request"></a></h3>
-
-                <p> 
-                    Each request processed by a servlet is represented by a
-                    Java
-                    interface, normally a
-                    <tt>HttpServletRequest</tt>
-                    <tt>[javax.servlet.http.HttpServletRequest].</tt>
-                    The request interface provides an object-oriented
-                    mechanism to access
-                    all of the information that was included in the underlying
-                    HTTP request,
-                    including:
-                </p>
-                <ul>
-                    <li>
-                        <i>Cookies</i>
-                        - The set of cookies included with this request
-                        are available via the
-                        <tt>getCookies()</tt>
-                        method.
-                    </li>
-                    <li>
-                        <i>Headers</i>
-                        - HTTP headers that were included with
-                        the request are accessible by name. You can enumerate
-                        the names
-                        of all included headers.
-                    </li>
-                    <li>
-                        <i>Parameters</i>
-                        - Request parameters, including those from
-                        the query string portion of the URL and from the
-                        embedded content
-                        of the request (POST only) are available by name.
-                    </li>
-                    <li>
-                        <i>Request Characteristics</i>
-                        - Many other characteristics
-                        of the incoming HTTP request, such as the method used
-                        (normally
-                        GET or POST) the protocol scheme used (&quot;http&quot; or
-                        &quot;https&quot;), and
-                        similar values.
-                    </li>
-                    <li>
-                        <i>Request URI Information</i>
-                        - The original request URI
-                        being processed is available via
-                        <tt>getRequestURI()</tt>
-                        .
-                        In addition, the constituent parts into which the
-                        servlet container
-                        parses the request URI (contextPath, servletPath, and
-                        pathInfo) are
-                        available separately.
-                    </li>
-                    <li>
-                        <i>User Information</i>
-                        - If you are using
-                        <a href="#security">Container Managed Security</a>
-                        , you can ask for
-                        the username of the authenticated user, retrieve a
-                        <tt>Principal</tt>
-                        object representing the current user, and
-                        whether the current user is authorized for a specified
-                        role.
-                    </li>
-                </ul>
-
-                <p> 
-                    In addition, servlet requests support
-                    <i>request attributes</i>
-                    (from JSP, these are &quot;request scope beans&quot;), analogous to
-                    the servlet
-                    context attributes described above. Request attributes are
-                    often used
-                    to communicate state information from a business logic
-                    class that
-                    generates it to a view component (such as a JSP page) that
-                    will use
-                    the information to produce the corresponding response.
-                </p>
-
-                <p> 
-                    The servlet container guarantees that a particular request
-                    will
-                    be processed by a servlet on a single thread. Therefore,
-                    you do not
-                    generally have to worry about the thread safety of your
-                    access to
-                    request properties and attributes.</p>
-
-                <p>
-                    For more about the servlet request, see:
-                </p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets7.html#63090">
-                            Getting Information from Requests</a>
-                        in The J2EE Tutorial.
-                    </li>
-                </ul>
-
-            </div>
-
-            <a name="response"></a>
-            <div class="section"><h3>Servlet Response<a name="Servlet_Response"></a></h3>
-
-                <p> 
-                    The primary purpose of a servlet is to process an incoming
-                    <a href="#request">Servlet Request</a>
-                    <tt>[javax.servlet.http.HttpServletRequest]</tt>
-                    and convert it into a
-                    corresponding response. This is performed by calling
-                    appropriate
-                    methods on the servlet response 
-                    <tt>[javax.servlet.http.HttpServletResponse]</tt>
-                    interface. Available methods let you:
-                </p>
-                <ul>
-                    <li>
-                        <i>Set Headers</i>
-                        - You can set HTTP headers that will be
-                        included in the response. The most important header is
-                        the
-                        <tt>Content-Type</tt>
-                        header, which tells your client what
-                        kind of information is included in the body of this
-                        response.
-                        This is typically set to
-                        <tt>text/html</tt>
-                        for an HTML page,
-                        or
-                        <tt>text/xml</tt>
-                        for an XML document.
-                    </li>
-                    <li>
-                        <i>Set Cookies</i>
-                        - You can add cookies to the current
-                        response.
-                    </li>
-                    <li>
-                        <i>Send Error Responses</i>
-                        - You can send an HTTP error status
-                        (instead of a usual page of content) using
-                        <tt>sendError()</tt>
-                        .
-                    </li>
-                    <li>
-                        <i>Redirect To Another Resource</i>
-                        - You can use the
-                        <tt>sendRedirect()</tt>
-                        method to redirect the client to
-                        some other URL that you specify.
-                    </li>
-                </ul>
-
-                <p> 
-                    An important principle in using the servlet response APIs
-                    is that
-                    any methods you call to manipulate headers or cookies
-                    <b>MUST</b>
-                    be performed before the first buffer-full of
-                    content has been flushed to the client. The reason for
-                    this restriction
-                    is that such information is transmitted at the beginning
-                    of the HTTP
-                    response, so trying things like adding a header after the
-                    headers have
-                    already been sent will not be effective.
-                </p>
-
-                <p>
-                    When you are using presentation pages in a Model 2
-                    application,
-                    you will not generally use the servlet response APIs
-                    directly.
-                    In the case of JavaServerPages, the JSP page compiler
-                    in your servlet container will convert your page into a
-                    servlet.
-                    The JSP servlet renders the response, interspersing
-                    dynamic
-                    information where you have interposed JSP custom tags.
-                </p>
-
-                <p>
-                    Other presentation systems, like Velocity Tools for
-                    Struts,
-                    may delegate rendering the response to a specialized
-                    servlet,
-                    but the same pattern holds true.
-                    You create a template,
-                    and the dynamic response is generated automatically from
-                    the template.
-                </p>
-
-                <p>
-                    For more about the servlet response, see:
-                </p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets7.html#79563">
-                            Constructing Responses</a>
-                        in The J2EE Tutorial.
-                    </li>
-                </ul>
-
-            </div>
-
-            <a name="filters"></a>
-            <div class="section"><h3>Filters<a name="Filters"></a></h3>
-
-                <p> 
-                    If you are using a servlet container based on version
-                    <b>2.3</b>
-                    or later of the Servlet Specification (such as
-                    Tomcat 4.x), you can take advantage of the new Filter APIs
-                    <tt>[javax.servlet.Filter]</tt>
-                    that
-                    let you compose a set of components that will process a
-                    request or
-                    response. Filters are aggregated into a chain in which
-                    each filter
-                    has a chance to process the request and response before
-                    and after
-                    it is processed by subsequent filters (and the servlet
-                    that is ultimately
-                    called).
-                </p>
-
-                <p> 
-                    Struts 1.2 and earlier require your container to implement 
-                    version 2.2 or later of the Servlet Specification,
-                    so those versions of the Struts framework do not use 
-                    Filters internaly. Beginning with Struts 1.3, a container 
-                    that supports version 2.3 or later of the Servlet
-                    Specification is required.
-                    Struts 2 uses a filter as the base of the controller, 
-                    instead of a servlet.
-                    </p>
-
-                <p>
-                    For more about filters, see:
-                </p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets8.html#103101">
-                            Filtering Requests and Responses</a>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/products/servlet/Filters.html">
-                            The Essentials of Filters</a>
-                    </li>
-                </ul>
-
-            </div>
-
-            <a name="session"></a>
-            <div class="section"><h3>Sessions<a name="Sessions"></a></h3>
-
-                <p> 
-                    One of the key characteristics of HTTP is that it is
-                    <i>stateless.</i>
-                    In other words, there is nothing built in to
-                    HTTP that identifies a subsequent request from the same
-                    user as being
-                    related to a previous request from that user. This makes
-                    building an
-                    application that wants to engage in a conversation with
-                    the user over
-                    several requests to be somewhat difficult.
-                </p>
-
-                <p> 
-                    To alleviate this difficulty, the servlet API provides a
-                    programmatic
-                    concept called a
-                    <i>session,</i>
-                    represented as an object that
-                    implements the
-                    <tt>javax.servlet.http.HttpSession</tt>
-                    interface.
-                    The servlet container will use one of two techniques
-                    (cookies or
-                    URL rewriting) to ensure that the next request from the
-                    same user will
-                    include the
-                    <i>session id</i>
-                    for this session, so that state
-                    information saved in the session can be associated with
-                    multiple
-                    requests. This state information is stored in
-                    <i>session
-                        attributes</i>
-                    (in JSP, they are known as &quot;session scope beans&quot;).
-                </p>
-
-                <p> 
-                    To avoid occupying resources indefinitely when a user fails to
-                    complete
-                    an interaction, sessions have a configurable
-                    <i>timeout interval.</i>
-                    If the time gap between two requests exceeds this
-                    interval, the session
-                    will be timed out, and all session attributes removed. You
-                    define a
-                    default session timeout in your web application deployment
-                    descriptor,
-                    and you can dynamically change it for a particular session
-                    by calling
-                    the
-                    <tt>setMaxInactiveInterval()</tt>
-                    method.
-                </p>
-
-                <p>Unlike requests, you need to be concerned about thread
-                    safety on
-                    your session attributes (the methods these beans provide,
-                    not the
-                    <tt>getAttribute()</tt>
-                    and
-                    <tt>setAttribute()</tt>
-                    methods
-                    of the session itself). It is surprisingly easy for there
-                    to be
-                    multiple simultaneous requests from the same user, which
-                    will therefore
-                    access the same session.
-                </p>
-
-                <p>Another important consideration is that session attributes
-                    occupy
-                    memory in your server
-                    <i>in between</i>
-                    requests. This can have
-                    an impact on the number of simultaneous users that your
-                    application can
-                    support. If your application requirements include very
-                    large numbers of
-                    simultaneous users, you will likely want to minimize your
-                    use of
-                    session attributes, in an effort to control the overall
-                    amount of memory
-                    required to support your application.
-                </p>
-
-                <p>
-                    For more about sessions, see:
-                </p>
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets11.html#63281">
-                            Maintaining Client State</a>
-                        in The J2EE Tutorial
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/products/servlet/2.1/api/javax.servlet.http.HttpSession.html">
-                            <tt>javax.servlet.http.HttpSession</tt>
-                        </a>
-                    </li>
-                </ul>
-
-            </div>
-
-            <a name="dispatch"></a>
-            <div class="section"><h3>Dispatching Requests<a name="Dispatching_Requests"></a></h3>
-
-                <p>
-                    The Java Servlet specification extends the HTTP
-                    request/response cycle by allowing the request to be
-                    dispatched,
-                    or forwarded, between resources.
-                    The framework uses this feature to pass a request through
-                    specialized components,
-                    each handling one aspect of the response.
-                    In the normal course, a request may pass through a
-                    controller object, a model object,
-                    and finally to a view object as part of a single
-                    request/response cycle.
-                </p>
-
-            </div>
-
-            <a name="webapp"></a>
-            <div class="section"><h3>Web Applications<a name="Web_Applications"></a></h3>
-
-                <p>
-                    Just as a HTTP server can be used to host several distinct
-                    websites,
-                    a servlet container can be used to host more than one web
-                    application.
-                    The Java servlet platform provides a well-defined
-                    mechanism for organizing and deploying web applications.
-                    Each application runs in its own namespace so that they
-                    can be developed and deployed separately.
-                    A web application can be assembled into a Web Application
-                    Archive, or WAR file.
-                    The single WAR can be uploaded to the server and
-                    automatically deployed.
-                </p>
-
-            </div>
-
-            <a name="events"></a>
-            <div class="section"><h3>Web application deployment descriptor (web.xml)<a name="Web_application_deployment_descriptor_web.xml"></a></h3>
-
-                <p>
-                    Most aspects of an application's lifecycle are configured
-                    through an XML document called the Web application
-                    deployment descriptor.
-                    The schema of the descriptor, or web.xml, is given by the
-                    Java servlet specification.
-                </p>
-
-            </div>
-
-            <a name="security"></a>
-            <div class="section"><h3>Security<a name="Security"></a></h3>
-
-                <p>
-                    One detail that can be configured in the Web application
-                    deployment descriptor is container-managed security.
-                    Declarative security can be used to protect requests for
-                    URIs that match given patterns.
-                    Pragmatic security can be used to fine-tune security make
-                    authorization decisions based on the time of day,
-                    the parameters of a call, or the internal state of a Web
-                    component.
-                    It can also be used to restrict authentication based on
-                    information in a database.
-                </p>
-
-                <p>
-                    For more about security, see:
-                </p>
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/blueprints/guidelines/designing_enterprise_applications/security/index.html">
-                          J2EE Blueprints: Security</a>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://securityfilter.sourceforge.net/">
-                            SecurityFilter
-                        </a>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://www.springframework.org/spring-security/">
-                            Spring Security</a>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://sslext.sourceforge.net/">
-                            The Struts SSL Extension for HTTP/HTTPS switching </a>
-                    </li>
-                </ul>
-
-            </div>
-
-            <a name="jsp"></a>
-            <div class="section"><h3>JavaServer Pages, JSP Tag Libraries, and JavaServer Faces<a name="JavaServer_Pages_JSP_Tag_Libraries_and_JavaServer_Faces"></a></h3>
-                <p>
-                    <a class="externalLink" href="http://java.sun.com/products/jsp/product.html">
-                        JavaServer Pages</a>
-                    (JSPs) are
-                    &quot;inside-out servlets&quot; that make it easier to create and
-                    maintain dynamic web pages. Instead
-                    of putting what you want to write to the HTTP response
-                    inside of a Java
-                    <tt>print</tt>
-                    statement, everything in a JavaServer Page is written to
-                    the response,
-                    <b>except</b>
-                    what is
-                    placed within special Java statements.
-                </p>
-
-                <p>With
-                    <b>JavaServer Pages</b>
-                    you can start by writing the page in standard HTML and
-                    then add the
-                    dynamic features using statements in the Java language or
-                    by using
-                    <a class="externalLink" href="http://java.sun.com/products/jsp/taglibraries.html">
-                        JSP tags.</a>
-                    The framework distribution includes several JSP tags
-                    that make it easy to access the framework's
-                    features from a JavaServer Page.
-                </p>
-
-                <p>For more about JavaServer Pages and Custom JSP Tag
-                    Libraries see</p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/products/jsp/">
-                            The
-                                JavaServer Pages Technology
-                        </a>
-                        page at
-                        <tt>java.sun.com</tt>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/products/jsp/reference/api/index.html">
-                            The
-                                JSP 1.2 and 2.0 Specifications
-                        </a>
-                        download page at
-                        <tt>java.sun.com</tt>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPIntro.html">
-                            JavaServer Pages Technology
-                        </a>
-                        in The J2EE Tutorial
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPTags.html">
-                            Custom Tags in JSP Pages
-                        </a>
-                        in The J2EE Tutorial
-                    </li>
-                </ul>
-
-                <p>
-                    Many times, JSP tags work hand-in-hand with JavaBeans. The
-                    application sends a JavaBean to
-                    the JSP, and the JSP tag uses the bean to customize the
-                    page for the instant user. For more, see
-                    <a class="externalLink" href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPBeans.html">
-                        JavaBeans Components in JSP Pages</a>
-                    in The J2EE Tutorial.
-                </p>
-
-                <p>
-                    The framework also works well with the
-                    <a class="externalLink" href="http://java.sun.com/products/jsp/jstl">
-                        JavaServer Pages Standard Tag Library
-                    </a>
-                    (JSTL) and taglibs from other sources, like
-                    <a class="externalLink" href="http://jsptags.com/">JSP Tags,</a>
-                    <a class="externalLink" href="http://jakarta.apache.org/taglibs/index.html">
-                        Jakarta Taglibs,</a>
-                    <a class="externalLink" href="http://struts.application-servers.com">Struts
-                        Layout,</a>
-                    and
-                    <a class="externalLink" href="http://displaytag.sourceforge.net/">
-                        Display Tags.</a>
-                </p>
-
-                <p>
-                    One of the components available with the framework is
-                    <a class="externalLink" href="http://struts.apache.org/struts-el/index.html">
-                        Struts-EL</a>
-                    .
-                    This taglib is specifically designed to work well with
-                    JSTL.
-                    In particular, it uses the same &quot;expression language&quot;
-                    engine for evaluating tag attribute values as JSTL.
-                    This is in contrast to the original Struts tag library,
-                    which can only use &quot;rtexprvalue&quot;s (runtime scriptlet
-                    expressions) for dynamic attribute values.
-                </p>
-
-                <p>There are also toolkits available that make the framework
-                    easy to use with
-                    <a class="externalLink" href="http://stxx.sourceforge.net/">XSLT</a>
-                    and
-                    <a class="externalLink" href="http://velocity.apache.org/tools/devel/">
-                        Velocity Templates.</a>
-                </p>
-
-                <p>
-                    The newest star on the Java horizon is
-                    <a class="externalLink" href="http://java.sun.com/j2ee/javaserverfaces/">
-                        JavaServer Faces technology.</a>
-                    JSF aims to simplify building user interfaces for JavaServer
-                    applications, both for the web and for the desktop.
-                </p>
-                <p>
-                    For an open source implementation of JSF, visit our
-                    sibling project, <a class="externalLink" href="http://myfaces.apache.org">
-                    Apache MyFaces.</a>
-                </p>
-
-                <p>For more about JSTL and JavaServer Faces see</p>
-
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://today.java.net/pub/a/today/2003/10/07/jstl1.html">
-                            Practical JSTL, Part 1</a>
-                        by Sue Spielman
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://www.jsfcentral.com">
-                            JSF Central
-                        </a>
-                        - JavaServer Faces resources.
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://www.jamesholmes.com/JavaServerFaces/">
-                            JavaServer Faces Resources
-                        </a>
-                        - James Holmes dot Com.
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://myfaces.apache.org">Apache MyFaces</a>
-                        - An open source implementation of
-                        the JSF specification.
-                    </li>
-                </ul>
-                
-            </div>
-
-            <a name="xml"></a>
-            <div class="section"><h3>Extensible Markup Language (XML)<a name="Extensible_Markup_Language_XML"></a></h3>
-
-                <p>The features provided by the framework rely on a number of
-                    objects that are
-                    usually deployed using a configuration file written in
-                    <a class="externalLink" href="http://www.w3.org/XML/">Extensible Markup
-                        Language.</a>
-                    XML is also used to
-                    configure Java web applications; so, this is yet another
-                    familiar approach.
-                </p>
-
-                <p>
-                    For more about how XML is used with Java applications
-                    generally, see the
-                    <a class="externalLink" href="http://jaxp.java.net/">
-                        Java API for XML Processing</a> Tutorial.
-                    While the framework makes good use of this API internally,
-                    it is not something most developers would use
-                    when writing their own applications with the framework.
-                </p>
-
-            </div>
-            
-            <a name="descriptors"></a>
-            <div class="section"><h3>Descriptors<a name="Descriptors"></a></h3>
-
-                <p>
-                    When Java applications use XML configuration files,
-                    the elements are most often used as
-                    <i>descriptors.</i>
-                    The application does not use the XML elements directly.
-                    The elements are used to create and configure (or deploy)
-                    Java objects.
-                </p>
-
-                <p>
-                    The Java Servlet platform uses an XML configuration file
-                    to deploy servlets (among other things).
-                    Likewise, The framework uses an XML configuration file to
-                    deploy objects.
-                </p>
-
-            </div>
-
-            <a name="jaas"></a>
-            <div class="section"><h3>JAAS<a name="JAAS"></a></h3>
-
-                <p>
-                    While the framework can work with any approach to user
-                    authentication and authorization, version 1.1 and later
-                    offers
-                    direct support for the standard Java Authentication and
-                    Authorization Service (JAAS).
-                    You can now specify security roles on an action-by-action
-                    basis.
-                </p>
-
-                <p>For more about JAAS, see the Sun Developer Network
-                    <a class="externalLink" href="http://download.oracle.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.html">product
-                        page</a>.
-                </p>
-
-                <p>
-                    A popular extension for handling security in a Java web
-                    application, including a framework application,
-                    is
-                    <a class="externalLink" href="http://securityfilter.sourceforge.net/">
-                        SecurityFilter</a>                    .
-                </p>
-                
-            </div>
-                        
-            <a name="mvc"></a>
-            <div class="section"><h3>Model View Controller (MVC)<a name="Model_View_Controller_MVC"></a></h3>
-            
-                <p>
-                     Web applications based on JavaServer Pages sometimes 
-                     commingle database code, page design code, and control flow 
-                     code. In practice, we find that unless these concerns are 
-                     separated, larger applications become difficult to maintain.
-                </p>
-                
-                <p>
-                     One way to separate concerns in a software application is 
-                     to use a Model-View-Controller (MVC) architecture. The 
-                     Model represents the business or database code, the View 
-                     represents the page design code, and the Controller 
-                     represents the navigational code. 
-                </p>
-            
-                <p>
-                    The term &quot;MVC&quot; originated with the SmallTalk 
-                    Model-View-Controller framework.
-                    In Smalltalk MVC, the View updates itself from the Model, via 
-                    the &quot;Observer&quot; pattern. The original MVC pattern is like a 
-                    closed loop: The View talks to the Controller, which talks to 
-                    the Model, which talks to the View.
-                </p>
-
-                <p>
-                    But, a direct link between the Model and the View is not 
-                    practical for web applications, and we modify the classic MVC 
-                    arrangement so that it would look less like a loop and more 
-                    like a horseshoe with the controller in the middle.
-                </p>
-
-                <p>
-                    In the MVC/Model 2 design pattern, application flow is mediated 
-                    by a central Controller. The Controller delegates requests -
-                    in our case, HTTP requests - to an appropriate handler. The 
-                    handlers are tied to a Model, and each handler acts as an 
-                    adapter between the request and the Model. The Model
-                    represents, or encapsulates, an application's business logic or 
-                    state. Control is usually then forwarded back through the 
-                    Controller to the appropriate View. The forwarding can be 
-                    determined by consulting a set of mappings, usually loaded from a 
-                    database or configuration file. This provides a loose coupling 
-                    between the View and Model, which can make applications 
-                    significantly easier to create and maintain. 
-                </p>
-                
-                <p>
-                    While MVC is a convenient paradigm, many workers find that 
-                    applcations may utilize more than three layers. 
-                    For example, within the Model, there is often distinct business 
-                    logic and data access layers. 
-                </p>
-            
-                <p>
-                    The framework provides the control layer for a Model 2 web
-                    applications.
-                    Developers can use this layer with other standard
-                    technologies to build the business, data access, and 
-                    presentation layers.
-                </p>
-                
-                <p>
-                    For more about MVC, see 
-                </p>
-                
-                <ul>
-                <li>
-                    <a class="externalLink" href="http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/web-tier/web-tier5.html">
-                        Web-Tier Application Framework Design</a> (Sun J2EE Blueprints)
-                </li>
-                <li>
-                    <a class="externalLink" href="http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html">
-                       Smalltalk MVC framework.</a>
-                </li>
-                <li>
-                    <a class="externalLink" href="http://en.wikipedia.org/wiki/Model_view_controller">
-                       Wikipedia - MVC</a>
-                </li>
-                </ul>                
-            </div>
-            
-            <a name="logic_frameworks"></a>
-            <div class="section"><h3>Business Logic Frameworks<a name="Business_Logic_Frameworks"></a></h3>
-
-                <p>
-                    Most teams still roll their own business logic layer using
-                    plain old JavaBeans (POJOs).
-                    Though, business layer frameworks are beginning to emerge,
-                    and now include:
-                </p>
-                <ul>
-                    <li>
-                        <a class="externalLink" href="http://commons.apache.org/chain/">
-                            Commons Chain of Responsiblity</a>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://springframework.org/">Spring</a>
-                    </li>
-                    <li>
-                        <a class="externalLink" href="http://struts.apache.org/2.x/">XWork</a>
-                    </li>
-                </ul>
+        <blockquote><p><i>
+        &quot;The time has come,&quot; the Walrus said, &quot;To talk of many things:
+        Of shoes -- and ships -- and sealing-wax -- Of cabbages -- and kings --
+        And why the sea is boiling hot -- And whether pigs have wings.&quot;
+        </i></p></blockquote>
+
+        <div class="section"><h2>Intention<a name="Intention"></a></h2>
+
+        <p>
+            If you would like to get started with Apache Struts you most likely want
+            to know what technologies you need to learn. This document shall give you
+            a brief overview what you need to successfully run a Struts project.
+
+            If you still can't decide if Struts is for you or if you have any questions,
+            feel free to contact us via the <a href="mail.html">Struts user mailinglist</a>.
+        </p>
+
+        <div class="section"><h2>Key Technologies<a name="Key_Technologies"></a></h2>
+
+        <a name="suspects"></a>
+        <div class="section"><h3>What you need to know<a name="What_you_need_to_know"></a></h3>
+
+        <p>
+            The framework documentation is written for active web developers and assumes
+            a working knowledge about how Java web applications are built.
+            Before getting started, you should understand the basics of several key technologies:
+        </p>
+
+        <ul>
+            <li><a href="#http">HTTP and HTML</a></li>
+            <li><a href="#cycle">The HTTP Request/Response Cycle</a></li>
+            <li><a href="#java">The Java Language and Application Frameworks</a></li>
+            <li><a href="#javascript">JavaScript, AJAX, and SOAP</a></li>
+            <li><a href="#resources">Properties Files and ResourceBundles</a></li>
+            <li><a href="#containers">Servlets, Filters and Web Containers</a></li>
+            <li><a href="#jsp">JavaServer Pages and JSP Tag Libraries</a></li>
+            <li><a href="#xml">Extensible Markup Language (XML)</a></li>
+            <li><a href="#jaas">JAAS</a></li>
+            <li><a href="#mvc">Model View Controller</a></li>
+        </ul>
+
+        <p>
+            This primer briefly defines each of these technologies but does not
+            describe them in detail. For your convenience, links to further information
+            are often provided where it makes sense.
+        </p>
+
+        </div><div class="section"><h3>General starting points<a name="General_starting_points"></a></h3>
+
+        <p>
+            If you are not familiar with the Java language generally,then the best starting point is the
+            <a class="externalLink" href="http://docs.oracle.com/javase/tutorial/index.html">Java Tutorial</a>.
+        </p>
+
+        <p>
+            If you are familiar with Java, but not the mentioned technologies,
+            the best overall starting point is the
+            <a class="externalLink" href="http://docs.oracle.com/javaee/7/tutorial/doc/">Java EE Tutorial</a>.
+        </p>
+
+        <p>
+            If you've created web applications for other platforms, you
+            may be able to follow along and visit the other references as needed. The core
+            technologies used by Struts are also used by most other Java web development products, so
+            the background information will be useful in any Java project.
+        </p>
+
+        <a name="http"></a>
+        </div><div class="section"><h3>HTTP, HTML and User Agents<a name="HTTP_HTML_and_User_Agents"></a></h3>
+
+        <p>
+            The World Wide Web was built over the Hypertext Transfer Protocol
+            <a class="externalLink" href="http://www.ietf.org/rfc/rfc2616.txt?number=2616">(HTTP)</a>
+            and the Hypertext Markup Language <a class="externalLink" href="http://www.w3.org/MarkUp/">(HTML).</a>
+            A User Agent, like a web browser, uses HTTP to request a HTML document.
+            The browser then formats and displays the document to its user. HTTP is used to
+            transport more the HTML, HTML from the browser to render the view.
+        </p>
+
+        <p>
+            If you would like to learn HTML, we recommend
+            <a class="externalLink" href="http://www.w3.org/MarkUp/Guide/">Getting started with HTML</a> by Dave Raggett.
+        </p>
+
+        <a name="cycle"></a>
+        </div><div class="section"><h3>The HTTP Request/Response cycle<a name="The_HTTP_RequestResponse_cycle"></a></h3>
+
+        <p>
+            A very important part of HTTP for the web developer is the request/response cycle. To use HTTP
+            you have to make a request. A HTTP server, like a web server, is then obliged to respond. When you
+            build your web application, you design it to react to a HTTP request by returning a HTTP response.
+            Frameworks often abstract much of these nuts and bolts, but it is important to understand
+            what is happening behind the scenes.
+        </p>
+
+        <p>
+            If you are not familiar with the HTTP request/response you should learn about it.
+            There is a lot of help available in the internet, like
+            <a class="externalLink" href="http://docs.webplatform.org/wiki/tutorials/How_does_the_Internet_work">&quot;How does the Internet work?&quot;</a>
+        </p>
+
+        <a name="java"></a>
+        </div><div class="section"><h3>The Java Language and Application Frameworks<a name="The_Java_Language_and_Application_Frameworks"></a></h3>
+
+        <p>
+           Struts is written in the

[... 521 lines stripped ...]


Mime
View raw message