The Core and Optional Smart GWT servlets
 The following is a description of the servlets and filters you'll find in the web.xml file
 contained in the smartclientRuntime and what they do: 
 Core Functionality 
 - Init servlet - see the article on 
Smart GWT
 Server Initialization  - IDACall servlet - required for 
DMI, built-in RPC operations and built-in DataSource
 operations to work.  All databound examples in the SDK use this servlet.  If you're planning on
 using a custom actionURL for all your RPC requests, then you don't need this servlet.
  - FileDownload servlet - required for serving the Isomorphic framework code compressed and
 with caching headers as well as for serving skin images with caching headers.  It is highly
 recommended that you use this for production but is not required.  
 - PreCache servlet - loads
 resources into memory on container startup.  Not required, but if you exclude this servlet
 there may be a slow response to the very first request. 
 - jsp-config section - the iscTaglib
 registration block is required to use <isomorphic> tags, and the *.isc and *.rpc
 mappings.  These are optional, if you want to use these as handy development tools. 
 
 
 Optional Functionality 
 - RESTHandler servlet - handles Smart GWT Server
 DataSource operations issued by  REST clients: it's like IDACall, but for the REST protocol. 
 Typically,  the clients of this servlet would not be ordinary Smart GWT/SmartGWT applications
 (though they  could be), but other client technologies that need to access Smart GWT DataSource
 operations as reusable services.  If you do not plan to connect to the server using the REST
 protocol, then you don't need this servlet. 
 - AxisServlet - exposes all DataSource operations
 via a WSDL service described by  SmartClientOperations.wsdl.  This is effectively the same as
 the RESTHandler servlet, but  for SOAP clients.  If you do not plan to connect to the server
 using webservice protocols, then you don't need this servlet. 
 - HttpProxy - used by the
 RPCManager when sending AJAX RPCs to a server other than the server that serves the main
 application page.  You need to install this servlet if, for example, your application will be
 querying web services exposed by servers other than the server that is serving the rest of the
 application.  See the javadoc for this servlet for various configuration options, such as how
 to restrict the URLs that are allowed to be proxied.  
 - MessagingServlet - used by the
 realtime messaging system.  If you're planning on using this subsystem, you'll need this
 servlet. 
 - CompressionFilter - required if you want to use dynamic compression of html and js
 files. 
 - JSSyntaxScannerFilter - development tool that looks for trailing commas in JS source
 (scans html files for <script> tags and scans .js files in their entirety). This is a
 useful development tool, but should not be included in production. 
 - NoCacheFilter -
 development tool that makes any content it intercepts non-cacheable in order to ensure
 developers are looking at the latest version of a file when modifying examples.  Not for
 production use. 
 - DataSourceLoader - a servlet that returns the definition of one or more
 DataSources in JavaScript notation.  This servlet is provided as an alternative to using the 
 
<isomorphic:loadDS> JSP tag, and is particularly suitable in environments
 where JSP tags can't be used for some reason (such as with SmartGWT).  See  Creating DataSources for more details.
  - ScreenLoaderServlet - a servlet that returns the definition of one or more screens in
 JavaScript notation.
  
 Note that not all of the servlets and filters listed under
 
Optional Functionality above are present in the web.xml that ships with the
 smartclientRuntime - if you need to use any of these, copy their configuration from the web.xml
 available under the WEB-INF directory of smartclientSDK.  Other servlets, filters and
 configuration files from the smartclientSDK should not be copied to your deployment, simply
 because the SDK includes many developer tools that are not extensively audited from a security
 standpoint.