<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <meta name="Date-Revision-yyyymmdd" content="20140918"/>
  <meta http-equiv="Content-Language" content="en"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>Key Technologies Primer</title>

  <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
  <link href="/css/main.css" rel="stylesheet">
  <link href="/css/custom.css" rel="stylesheet">
  <link href="/highlighter/github-theme.css" rel="stylesheet">

  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
  <script type="text/javascript" src="/js/community.js"></script>
</head>
<body>

<a href="http://github.com/apache/struts" class="github-ribbon">
  <img style="position: absolute; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub">
</a>

<header>
  <nav>
    <div role="navigation" class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle">
            Menu
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a>
        </div>
        <div id="struts-menu" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Home<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/index.html">Welcome</a></li>
                <li><a href="/download.cgi">Download</a></li>
                <li><a href="/releases.html">Releases</a></li>
                <li><a href="/announce.html">Announcements</a></li>
                <li><a href="http://www.apache.org/licenses/">License</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Support<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/mail.html">User Mailing List</a></li>
                <li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li>
                <li><a href="/security.html">Reporting Security Issues</a></li>
                <li class="divider"></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li>
                <li class="divider"></li>
                <li><a href="/maven/project-info.html">Maven Project Info</a></li>
                <li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li>
                <li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Documentation<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/birdseye.html">Birds Eye</a></li>
                <li><a href="/primer.html">Key Technologies</a></li>
                <li><a href="/kickstart.html">Kickstart FAQ</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li>
                <li class="divider"></li>
                <li><a href="/getting-started/">Getting Started</a></li>
                <li><a href="/security/">Security Guide</a></li>
                <li><a href="/core-developers/">Core Developers Guide</a></li>
                <li><a href="/tag-developers/">Tag Developers Guide</a></li>
                <li><a href="/maven-archetypes/">Maven Archetypes</a></li>
                <li><a href="/plugins/">Plugins</a></li>
                <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
                <li><a href="/tag-developers/tag-reference.html">Tag reference</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li>
                <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Contributing<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/youatstruts.html">You at Struts</a></li>
                <li><a href="/helping.html">How to Help FAQ</a></li>
                <li><a href="/dev-mail.html">Development Lists</a></li>
                <li><a href="/contributors/">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/submitting-patches.html">Submitting patches</a></li>
                <li><a href="/builds.html">Source Code and Builds</a></li>
                <li><a href="/coding-standards.html">Coding standards</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Contributors+Guide">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/release-guidelines.html">Release Guidelines</a></li>
                <li><a href="/bylaws.html">PMC Charter</a></li>
                <li><a href="/volunteers.html">Volunteers</a></li>
                <li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li>
                <li><a href="/updating-website.html">Updating the website</a></li>
              </ul>
            </li>
            <li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li>
          </ul>
        </div>
      </div>
    </div>
  </nav>
</header>


<article class="container">
  <section class="col-md-12">
    <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/primer.md" title="Edit this page on GitHub">Edit on GitHub</a>
    
    <h1 class="no_toc" id="key-technologies-primer">Key Technologies Primer</h1>

<blockquote>
  <p><em>“The time has come,” the Walrus said, “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.”</em></p>
</blockquote>

<ul id="markdown-toc">
  <li><a href="#intention" id="markdown-toc-intention">Intention</a></li>
  <li><a href="#key-technologies" id="markdown-toc-key-technologies">Key Technologies</a>    <ul>
      <li><a href="#what-you-need-to-know" id="markdown-toc-what-you-need-to-know">What you need to know</a></li>
      <li><a href="#general-starting-points" id="markdown-toc-general-starting-points">General starting points</a></li>
      <li><a href="#http" id="markdown-toc-http">HTTP, HTML and User Agents</a></li>
      <li><a href="#cycle" id="markdown-toc-cycle">The HTTP Request/Response cycle</a></li>
      <li><a href="#the-java-language-and-application-frameworks" id="markdown-toc-the-java-language-and-application-frameworks">The Java Language and Application Frameworks</a>        <ul>
          <li><a href="#reflection" id="markdown-toc-reflection">Reflection and Introspection</a></li>
          <li><a href="#resources" id="markdown-toc-resources">Properties Files and ResourceBundles</a></li>
          <li><a href="#threads" id="markdown-toc-threads">Threads</a></li>
        </ul>
      </li>
      <li><a href="#javascript" id="markdown-toc-javascript">JavaScript, AJAX, and SOAP</a></li>
      <li><a href="#containers" id="markdown-toc-containers">Servlets, Filters, and Web Containers</a></li>
      <li><a href="#session" id="markdown-toc-session">Sessions</a></li>
      <li><a href="#webapp" id="markdown-toc-webapp">Web Applications</a></li>
      <li><a href="#security" id="markdown-toc-security">Security</a></li>
      <li><a href="#jsp" id="markdown-toc-jsp">JavaServer Pages, JSP Tag Libraries, and JavaServer Faces</a></li>
      <li><a href="#xml" id="markdown-toc-xml">Extensible Markup Language (XML)</a></li>
      <li><a href="#mvc" id="markdown-toc-mvc">Model View Controller (MVC)</a></li>
    </ul>
  </li>
  <li><a href="#logic-frameworks" id="markdown-toc-logic-frameworks">Business Logic Frameworks</a></li>
  <li><a href="#data-frameworks" id="markdown-toc-data-frameworks">Data Access Frameworks</a></li>
</ul>

<h2 id="intention">Intention</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.</p>

<p>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>

<h2 id="key-technologies">Key Technologies</h2>

<h3 id="what-you-need-to-know">What you need to know</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="#session">Sessions</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>

<h3 id="general-starting-points">General starting points</h3>

<p>If you are not familiar with the Java language generally,then the best starting point is the
<a 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 href="https://docs.oracle.com/javaee/7/tutorial/">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>

<h3 id="http">HTTP, HTML and User Agents</h3>

<p>The World Wide Web was built over the Hypertext Transfer Protocol
<a href="http://www.ietf.org/rfc/rfc2616.txt?number=2616">(HTTP)</a>
and the Hypertext Markup Language <a 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 href="http://www.w3.org/MarkUp/Guide/">Getting started with HTML</a> by Dave Raggett.</p>

<h3 id="cycle">The HTTP Request/Response cycle</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. An HTTP server, like a web server, is then obliged to respond. When you
build your web application, you design it to react to an HTTP request by returning an 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 href="http://docs.webplatform.org/wiki/tutorials/How_does_the_Internet_work">How does the Internet work?</a></p>

<h3 id="the-java-language-and-application-frameworks">The Java Language and Application Frameworks</h3>

<p>Struts is written in the
<a href="http://www.oracle.com/us/technologies/java/overview/index.html">Java programming language</a>.
Java is an object-orientated language, and the framework makes good use of many
object-orientated techniques. A good understanding of Java, and especially
object-orientated programming (OOP) and threading, will help
you get the most out of Struts.</p>

<h4 id="reflection">Reflection and Introspection</h4>

<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 Object are intended to be accessed by other objects.
The getters and the setters, for example.</p>

<p>Struts uses Introspection to convert HTTP parameters into JavaBean properties and to populate HTML
fields from JavaBean properties. This technique makes it easy to “roundtrip” properties
between HTML forms and JavaBeans.</p>

<p>While it is not necessary to have a deep understanding of these concepts when you start with Apache
Struts, it will help you when your application grows and becomes more complex.</p>

<h4 id="resources">Properties Files and ResourceBundles</h4>

<p>Java applications, including web applications, are often
configured using <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html">Properties</a>
files. Properties files are the basis for the
<a href="http://docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html">ResourceBundles</a>
that the framework uses to provide message resources to an application.</p>

<p>The Java Tutorials provide a
<a href="http://docs.oracle.com/javase/tutorial/essential/environment/properties.html">great introduction to Properties</a>.</p>

<p>Java ResourceBundles use one or more Properties files to provide internationalized messages
to users based their <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Locale.html">Locale</a>.
Support for localizing an application was built into the framework from the ground-up.</p>

<p>Again the Java Tutorials provide
<a href="http://docs.oracle.com/javase/tutorial/i18n/resbundle/concept.html">more information</a>.</p>

<h4 id="threads">Threads</h4>

<p>With Struts 1 you were required to know a lot about how to write code which
can run in a multi-threaded environment. With Struts 2 this is no longer necessary.
In an Struts 2 environment each action caused by a HTTP request
is a plain old Java object which is instanced for each request.</p>

<h3 id="javascript">JavaScript, AJAX, and SOAP</h3>

<p>With HTTP and HTML you can already provide static web pages. Today this is much
often not longer enough and your application users might expect a interactive user interface.
Web developers often resort to <a href="http://en.wikipedia.org/wiki/JavaScript">JavaScript</a>
to make web applications more interesting.</p>

<p><a href="http://en.wikipedia.org/wiki/AJAX">AJAX</a> is a technology often used by JavaScript programmers
to create web applications that are as interactive and responsive as desktop applications.
It is possible, to load a view parts of the website or just the data
from the (Struts) application instead of regenerating the whole view.</p>

<p>Apache Struts provides plugins to easily work with AJAX and even JavaScript. Where Struts can’t provide
the necessary functionality, third parties provide extensions for the required behavior.</p>

<p>Another technology that can enhance the HTTP request/response cycle is <a href="http://en.wikipedia.org/wiki/SOAP">SOAP</a>.
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 between the
the business logic and the page markup. Depending on your applications need, it might be not necessary
for you to learn about SOAP.</p>

<h3 id="containers">Servlets, Filters, and Web Containers</h3>

<p>Since Java is an object-orientated language, the
<a href="http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html">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>A Java-aware HTTP 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>The old Struts 1 version relied heavily on servlets and good knowledge about it usually helped a lot
with developing web applications.</p>

<p>With Struts 2, you’ll need only a basic understanding of Servlets. Struts actually uses a so called
ServletFilter to "make things work". In general you are not required to write Servlets when
using Struts 2. It still helps to know what Servlets, Filters and Containers are.</p>

<p>Filters 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>

<h3 id="session">Sessions</h3>

<p>One of the key characteristics of HTTP is that it is
<em>stateless</em>. 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 <em>session</em>, represented as an object that
implements the <code class="highlighter-rouge">javax.servlet.http.HttpSession</code>
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 <em>session id</em>
for this session, so that state information saved in the session can be associated with
multiple requests. This state information is stored in
<em>session attributes</em> (in JSP, they are known as “session scope beans”).</p>

<p>To avoid occupying resources indefinitely when a user fails to
complete an interaction, sessions have a configurable <em>timeout interval</em>.
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.</p>

<p>It is important to know that Session data most often occupies RAM memory
of your server. Depending on your container you may have different options to
bypass this.</p>

<p>Struts 2 provides easy ways to create and access a session.</p>

<h3 id="webapp">Web Applications</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>

<p>You definitely need to learn how you can build a war file from your Struts
application and deploy it to your server. This might require knowledge of
build tools like <a href="http://maven.apache.org">Maven</a> and addition reading
in the documentation of your server vendor.</p>

<h3 id="security">Security</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 you should read the <a href="http://docs.oracle.com/javaee/6/tutorial/doc/gijrp.html">Java EE tutorial</a>.
Other projects, like <a href="http://shiro.apache.org/">Apache Shiro</a> or <a href="https://spring.io/projects/spring-security/">Spring Security</a> 
might also help you to secure your web application.</p>

<h3 id="jsp">JavaServer Pages, JSP Tag Libraries, and JavaServer Faces</h3>

<p>If you write a classic web app, you might need a view component.
One of the first of its kind was <a href="http://www.oracle.com/technetwork/java/javaee/jsp/index.html">JSP</a>.</p>

<p>While still powerful and fully supported by Struts, people might prefer other technologies
like Velocity and Freemarker. Both are also first class citizens for Struts.</p>

<p>All have in common that you would start writing HTML markup and add dynamic features using
JSP tags (same goes for Velocity and Freemarker). While it is not recommended, JSP even supports
adding plain Java to the markup. Reading about the
<a href="http://www.oracle.com/technetwork/java/index-jsp-135995.html">JSTL</a> or, even better,
the <a href="http://docs.oracle.com/javaee/5/tutorial/doc/bnahq.html">Unified expression language</a>
is recommended.</p>

<p>That said, you can easily access your data model from the view. And render it appropriate.
If you would like to use a more modern approach, you will love to hear Struts 2 provides
features to return <a href="http://json.org">JSON</a>, which usually fuels AJAX driven webpages.
With that it is easily possible to use jQuery or <a href="http://www.angularjs.org">AngularJS</a>
as a front end layer and even completely discard JSP.</p>

<p>As mentioned, aside from Java Server Pages, there are several other
presentation technologies available to Struts:</p>

<ul>
  <li><a href="http://www.freemarker.org/">Freemarker</a></li>
  <li><a href="http://www.lowagie.com/iText/">iText (PDF)</a></li>
  <li><a href="http://jaspersoft.com/">JasperReports</a></li>
  <li><a href="http://velocity.apache.org/">Velocity</a></li>
  <li><a href="http://www.w3.org/TR/xslt">XSLT</a></li>
</ul>

<h3 id="xml">Extensible Markup Language (XML)</h3>

<p>The features provided by the framework rely on a number of
objects that are sometimes deployed using a configuration file written in
<a 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>Luckily Struts 2 reduces the need for XML to almost zero. While a basic knowledge on XML is always good,
it is no longer crucial to write long XML documents to create a Struts
application. If you would like to read more about it, please visit the page of the
<a href="http://struts.apache.org/release/2.1.x/docs/convention-plugin.html">Convention plugin</a>.</p>

<h3 id="mvc">Model View Controller (MVC)</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 “MVC” originated with the SmallTalk
Model-View-Controller framework.
In Smalltalk MVC, the View updates itself from the Model, via
the “Observer” 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
applications 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 href="http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html">Smalltalk MVC framework</a>.</li>
  <li><a href="http://en.wikipedia.org/wiki/Model_view_controller">Wikipedia - MVC</a></li>
</ul>

<h2 id="logic-frameworks">Business Logic Frameworks</h2>

<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 href="http://springframework.org/">Spring</a></li>
  <li><a href="http://code.google.com/p/google-guice/‎">Google Guice</a></li>
  <li><a href="http://commons.apache.org/chain/">Commons Chain of Responsiblity</a></li>
  <li>or you can rely on features of the bundled Struts XWork</li>
</ul>

<h2 id="data-frameworks">Data Access Frameworks</h2>

<p>Most often, the business layer is seen to be distinct from
the data access layer. Some teams roll their own data access objects (DAOs),
but more and more teams are turning to one of the many
data access frameworks. Some popular data access frameworks include:</p>

<ul>
  <li><a href="http://cayenne.apache.org/">Apache Cayenne</a></li>
  <li><a href="http://docs.oracle.com/javaee/5/tutorial/doc/bnblr.html">Enterprise Java Beans</a></li>
  <li><a href="http://www.hibernate.org/">Hibernate</a></li>
  <li><a href="http://code.google.com/p/mybatis">myBATIS</a></li>
</ul>

  </section>
</article>


<footer class="container">
  <div class="col-md-12">
    Copyright &copy; 2000-2018 <a href="http://www.apache.org/">The Apache Software Foundation </a>.
    All Rights Reserved.
  </div>
  <div class="col-md-12">
    Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are
    trademarks of The Apache Software Foundation.
  </div>
  <div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div>
</footer>

<script>!function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (!d.getElementById(id)) {
    js = d.createElement(s);
    js.id = id;
    js.src = "//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js, fjs);
  }
}(document, "script", "twitter-wjs");</script>
<script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script>

<div id="fb-root"></div>

<script>(function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s);
  js.id = id;
  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>


</body>
</html>
