planetj.dataengine.application
Class DataEngineApplicationServlet

java.lang.Object
  extended byHttpServlet
      extended byplanetj.dataengine.DataEngineServlet
          extended byplanetj.dataengine.application.DataEngineApplicationServlet
All Implemented Interfaces:
IApplication, IApplicationJSPs, IDataEngine, IJSPPages, INavigation, IServletParameters, IWOWJSPs

public class DataEngineApplicationServlet
extends DataEngineServlet
implements IApplication

See Also:
Serialized Form

Field Summary
static java.lang.String ID
           
static java.lang.String REFRESH_APPS
           
static java.lang.String VIEW_HTTP_ID
           
 
Fields inherited from interface planetj.dataengine.application.IApplication
APPLICATION_CLASS, APPLICATION_HTTP_ID, APPLICATION_ID, APPLICATION_JSP_FILE, APPLICATION_METADATA_ALIAS, APPLICATION_NAME, APPLICATION_RESULTS_KEY, APPLICATION_TABLE_NAME, AUTO_RUN_STATUS, COMPANY_ID, COMPANY_NAME, CONNECTION_ALIAS, CURRENT_EXECUTING_APPLICATION, CURRENT_WOW_APPLICATION, DESCRIPTION, ERROR_JSP_FILE, INITIAL_VIEW, MANAGE, OPTIONAL_SIGNON, OWNER_ID, PASSWORD, PROPERTIES, SERVLET_URI, SIGN_ON_CLASS, SIGN_ON_OP_ID, SIGN_ON_URI, THEME_ID, USER_ID, VERIFY_CONNECTION
 
Fields inherited from interface planetj.dataengine.IDataEngine
ACTION, ADMIN_MAGIC_REQUEST, ALL_SERVLET_PATHS, ALLOW_MULTIPLE_DELETES, ALLOW_MULTIPLE_SELECTION, APPLICATION, COMPANY, CONTEXT, CONTEXT_KEY, CONTROLLER_SERVLET_PATH, CONTROLLER_SERVLET_URI, CURRENT_SQL_CONTEXT, CURRENT_SQL_RECORD_COUNT, CURRENT_SQL_STRING, CURRENT_TOC, DATA_ENGINE_MESSAGE, DATAENGINE_ADMIN_SERVLET_PATH, DATAENGINE_APPLICATION_BUILDER_SERVLET_PATH, DATAENGINE_APPLICATION_SERVLET_PATH, DATAEXPLORER_SERVLET_PATH, DE_ACTION_CATEGORY, DE_ACTION_SIGN_ON, DEFAULT_LAYOUT_DISPLAY_PROPERTIES, DEFAULT_RESULTS_KEY, DETAILS, EDITABLE_OPERATIONS, ENVIRONMENT_MODE_DEVELOPMENT, ENVIRONMENT_MODE_PRODUCTION, ERROR_APPLICATION_INVALID, ERROR_COMPANY_INVALID, ERROR_MESSAGE, ERROR_MESSAGE_NEXT_PAGE, EXCEPTION, EXCEPTION_JSP_KEY, FD_LIBRARY_LIST, FD_TABLE_LIST, FIELD, FIELD_DESCRIPTOR_SERVLET_PATH, FIELD_LIST, FIELD_NAMES, FIELDS, FORM_LIB_TBL_FLD, FUNCTION, HIDDEN_APPLICATION_ID, HIDDEN_APPLICATION_METADATA_ALIAS, HTTP_ATTRIBUTE_LIBRARY_LIST, HTTP_ATTRIBUTE_REPLACEMENT_LIBRARIES, HTTP_ATTRIBUTE_THEME_ID, HTTP_METHOD, HTTP_PARAMETER_LIBRARY_LIST, HTTP_PARAMETER_REPLACEMENT_LIBRARIES, HTTP_PARAMETER_THEME_ID, HTTP_PARAMETER_USER_LIBRARY, HTTP_SAME_NEW_GROUP, IGNORE_MAGIC_REQUEST, KEEP_INSERT_VALUES, LAST_JSP_CALLED, LAUNCHED_FROM_BUILDER, LIBRARY, MAGIC_ACTION_ROW, MODE, MODE_COPY, MODE_DELETE, MODE_EDIT, MODE_INSERT, MODE_INT_COPY, MODE_INT_DELETE, MODE_INT_EDIT, MODE_INT_INSERT, MODE_INT_SEARCH, MODE_INT_UNKNOWN, MODE_INT_VIEW, MODE_SEARCH, MODE_UNKNOWN, MODE_VIEW, MULTIPLESELECTION, NEW_ROW, NEW_WINDOW_FOR_RESULTS, NEXT_PAGE, NO_COOKIES_FLAG, NO_COOKIES_JSP, NOSELECTION, OPERATION, OPERATION_KEY, OWNER_ID, PAGE, PAGE_REQUEST_EXECUTED, PAGE_VALIDATION_REQUIRED, PARAMETER_VALUE_PREFIX, PREVIOUS_PAGE, READ_ONLY_VALUE, RESERVED_PARAMETERS, RETRIEVE_ALL_COLUMNS_ON_COPY, RETRIEVE_ALL_COLUMNS_ON_EDIT, RETRIEVE_ALL_COLUMNS_ON_VIEW, RETRIEVE_FIELDS, RETRIEVE_TABLES, RETURN_URI, ROW, ROW_ALTERNATE_KEY, ROW_COLLECTION, ROW_COLLECTION_KEY, ROW_KEY, ROW_KEY_FOR_DETAILS, ROW_SELECTION_JS_INCLUDED, ROWS_ALTERED_COUNT, SAVED_HTML, SAVED_HTML_KEY, SELECTED_ROW, SELECTED_ROW_COLLECTION, SELECTEDOBJECTS, SERVLET_CONTEXT, SESSION_RANDOM_NUMBER, SESSION_SIGNED_OFF, SESSION_SIGNON_RECEIPT_KEY, SESSION_TIMED_OUT, SHOW_FD_QUICK_LINKS, SHOW_UPDATABLE_TABLES, SHOW_UPDATEABLE_ROW, SIGN_ON_CALLER, SIGNON, SIGNON_AND_REGISTRATION_SERVLET_PATH, SINGLESELECTION, STATEMENT, SYSTEM, SYSTEMS_LIST, TAB_PARENT_ROW_KEY, TABLE, TRANSIENT, UNSUPPORTED, URI_PREFIX, USER_LIBRARY_HTTP_PARAMETER, USER_LIBRARY_HTTP_SESSION_KEY, USER_MESSAGE, USER_PREFERENCES, VALID_SIGNON, WAITING_MAGIC_REQUEST, WAITING_SERVLET, WINDOW_CLOSE, WINDOW_NORMAL, WINDOW_POPUP, WINDOW_TYPE_PARAM
 
Fields inherited from interface planetj.dataengine.INavigation
CHILD_PREFIX, GROUP_ATTRIBUTES, GROUP_ID, INITIAL_GROUP_ID, INITIAL_PAGE_ID, INITIAL_REQUEST_ID, NAVIGATION_CHECKED, NAVIGATION_OBJECT_LIST_PREFIX, NEW_GROUP_ID, NEW_REQUEST_ID, NEW_SESSION_ID, PAGE_ATTRIBUTES, PAGE_ID, PARENT_PREFIX, PERSISTENT_ATTRIBUTES, PREVIOUS_ATTRIBUTES, PREVIOUS_GROUP_ID, PREVIOUS_PAGE_ID, PREVIOUS_REQUEST_ID, REQUEST_ID, RESET_GROUP_ID, RESET_NAVIGATION_IDS, RESET_NAVIGATION_IDS_COMPLETED, RESET_PAGE_ID, RESET_REQUEST_ID, RESET_SESSION_ID, SESSION_ID
 
Fields inherited from interface planetj.dataengine.IServletParameters
ALL, AUTO_RUN, BASE_URL, CACHE_TRACK_ON, CACHE_TRACK_WRITE_TO_FILE, CLEAN_UP_TIME, DATA_ACCESS_TRACKING, DATABASE, DRIVER, ENVIRONMENT_MODE, JDBC_OPTIMIZATIONS, LIBRARY_LIST, MAX_CONNECTIONS, METADATA_LIBRARY, METADATA_USER_LIBRARY, MIN_CONNECTIONS, ORPHAN_TIMEOUT, PASSWORD, PORT, REPLACEMENT_LIBRARIES, SYSTEM_ALIAS, SYSTEM_ALIAS_PARAM, SYSTEM_URL, USER_ID, USER_PASSWORD
 
Fields inherited from interface planetj.dataengine.IJSPPages
CUSTOM_LOG_ON_JSP, DEFAULT_ADD_BODY_JSP, DEFAULT_ADD_BUTTONS_JSP, DEFAULT_EDIT_BODY_JSP, DEFAULT_EDIT_BUTTONS_JSP, DEFAULT_PARAMS_JSP, DEFAULT_PLEASE_WAIT_JSP, DEFAULT_PRINT_PAGE_JSP, DEFAULT_RESULTS_JSP, DEFAULT_ROW_DETAILS, DEFAULT_SQL_OPERATION_RESULTS_JSP, DEFAULT_TAB_CONTAINER_JSP, DEFAULT_TAB_HEADINGS_JSP, DEFAULT_TAB_PARENT_JSP, DEFAULT_VIEW_BODY_JSP, DEFAULT_VIEW_BUTTONS_JSP, DETAILS_JSP, DISPLAY_EXCEPTION_JSP, INITIAL_JSP, PLEASE_WAIT_CONTROLLER_JSP, SIGN_ON_BODY_JSP, SIGN_ON_JSP, SIGNON_PARAMS_JSP
 
Fields inherited from interface planetj.dataengine.application.IApplicationJSPs
APPLICATION_ADD_JSP, APPLICATION_DETAILS_JSP, APPLICATION_EDIT_JSP, APPLICATION_ERROR_JSP, APPLICATION_HEADER_JSP, APPLICATION_INVALID_LICENSE_JSP, APPLICATION_JSP, APPLICATION_MESSAGE_JSP, APPLICATION_OPERATIONS_TOC, APPLICATION_RESULTS_JSP, APPLICATION_SIGN_ON_JSP, APPLICATION_TEMPLATE_JSP, APPLICATION_TOC_JSP, APPLICATION_VIEW_JSP
 
Fields inherited from interface planetj.dataengine.application.IWOWJSPs
WOW_MAIN_EXCEPTION_JSP, WOW_MANAGE_OPERATIONS_JSP, WOW_STEPS_JSP, WOW_TOC, WOW_VIEW_APPLICATIONS_JSP, WOW_VIEW_CONNECTIONS_JSP
 
Constructor Summary
DataEngineApplicationServlet()
           
 
Method Summary
 java.lang.String getInitialPage(HttpServletRequest req)
          Force subclasses to return an initial jsp/servlet.
static java.lang.String getInitialURL(Application app, HttpServletRequest req)
          Gets the initial URL.
protected  java.lang.String getJsp(Application pApp, HttpServletRequest pReq)
          Deprecated.  
protected  java.lang.String getMode(HttpServletRequest pReq)
          Returns the current mode that SQLOperations should be displayed in (by itself or in an app)
static DirectOperationRequest getRequestedOperationData(HttpServletRequest pReq)
          Gets the DirectOperationRequest object specifying which Operation was requested.
 IRowEventListener getRowEventListener(HttpServletRequest req)
          Each Servlet may have its own RowEventListener defined, so they would override this method and return the appropriate Listener Creation date: (7/11/2002 10:30:18 AM)
 boolean handleError(short wowErrorCode, java.lang.Exception e, ExecutingContext ec)
          This method is called when an error occurs.
 void init()
          Initialize the log
static boolean isSignOnNecessary(Application app, HttpServletRequest req)
          Tests if the user has to sign on to the application.
protected  void navigationError(HttpServletRequest request, HttpServletResponse response)
           
protected  void pageExpired(HttpServletRequest request, HttpServletResponse response)
          This method is called when a page has expired.
 boolean preHandleServiceRequest(HttpServletRequest request, HttpServletResponse response)
          This method handles generic DataEngine service requests.
 void processApplication(Application app, HttpServletRequest request, HttpServletResponse res)
           
 void processRequest(HttpServletRequest req, HttpServletResponse res)
          This is the main delegating method called after doPost and doGet.
 void processSQLOperation(SQLOperation pSQLOperation, java.lang.String pJsp, HttpServletRequest pReq, HttpServletResponse pRes)
          Deprecated.  
protected  void sessionTimedOut(HttpServletRequest request, HttpServletResponse response)
          This method is called when the user's session timeouts.
 boolean verifySignOn(Application application, HttpServletRequest request, HttpServletResponse response)
          Checks to see if the user is signed on to the Application.
 
Methods inherited from class planetj.dataengine.DataEngineServlet
addCookie, checkLaunchedFromBuilder, checkLicense, correctRequest, destroy, displayDataEngineException, doGet, doPost, dumpParameters, forward, forwardInternal, forwardToPage, getAvailableServletNames, getCookie, getCookies, getDataEngineException, getErrorMessage, getInitializationException, getInitializationParameter, getLastJSPPath, getLicense, getLoggingPath, getRequestAttribute, getRequestParameter, getRequestParameterValues, getRowCollectionJsp, getServiceRequestOverride, getServletPath, getServletPath, getSessionAttribute, getSessionSharedAttribute, getUserMessage, handleMagicRequest, handleSavedHTML, handleServiceClassRequest, handleServiceRequest, initConnectionPool, initDataEngineProperties, initInitParameters, initLicense, initMetadataLibraries, initSerlvetPaths, isAuthorized, isCookiesAllowed, isLicenseValid, isRunningInVA, isServletPath, isSessionTimeOut, printParameterTrace, removeRequestAttribute, removeRequestData, removeSessionAttribute, removeSessionSharedAttribute, removeSharedSessionAttribute, service, setErrorMessage, setErrorMessage, setLayoutProperties, setMethod, setRequestGroupAttribute, setRequestPageAttribute, setRequestPersistentAttribute, setRequestTransientAttribute, setServletPath, setServletURI, setSessionAttribute, setSessionSharedAttribute, setUseFullURI, setUserMessage
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ID

public static final java.lang.String ID
See Also:
Constant Field Values

VIEW_HTTP_ID

public static final java.lang.String VIEW_HTTP_ID
See Also:
Constant Field Values

REFRESH_APPS

public static final java.lang.String REFRESH_APPS
See Also:
Constant Field Values
Constructor Detail

DataEngineApplicationServlet

public DataEngineApplicationServlet()
Method Detail

getInitialPage

public java.lang.String getInitialPage(HttpServletRequest req)
Force subclasses to return an initial jsp/servlet. We need this incase potential errors timeout occur while running generic services. For example, the web browser brings up a page and then sits for 5 hours then tries a DataEngineServlet service method such as sorting. The DataEngineServlet session has been lost (invalidated) so we are dead in the water so we'll ask the subclass servlet where we should take the user to resignon.

Specified by:
getInitialPage in class DataEngineServlet

getInitialURL

public static java.lang.String getInitialURL(Application app,
                                             HttpServletRequest req)
Gets the initial URL. This is the URL which can be used to "restart" the application for the current user


getJsp

protected java.lang.String getJsp(Application pApp,
                                  HttpServletRequest pReq)
                           throws CMException
Deprecated.  

Returns the JSP to forward to

Throws:
CMException

getMode

protected java.lang.String getMode(HttpServletRequest pReq)
                            throws CMException
Returns the current mode that SQLOperations should be displayed in (by itself or in an app)

Throws:
CMException

getRequestedOperationData

public static DirectOperationRequest getRequestedOperationData(HttpServletRequest pReq)
                                                        throws CMException
Gets the DirectOperationRequest object specifying which Operation was requested. Most of the time, an Operation is retrieved through an application and magic requests, not this method. Only when an Operation is directly specified on the URL does this method return a non-null object.

Returns:
The data for the Operation directly specified on the URL, or null if no such Operation was specified.
Throws:
CMException

getRowEventListener

public IRowEventListener getRowEventListener(HttpServletRequest req)
Each Servlet may have its own RowEventListener defined, so they would override this method and return the appropriate Listener Creation date: (7/11/2002 10:30:18 AM)

Overrides:
getRowEventListener in class DataEngineServlet

handleError

public boolean handleError(short wowErrorCode,
                           java.lang.Exception e,
                           ExecutingContext ec)
This method is called when an error occurs. It allows an application to control the logic and flow.

Overrides:
handleError in class DataEngineServlet
Returns:
true if application handled error; false otherwise

init

public void init()
          throws ServletException
Initialize the log

Overrides:
init in class DataEngineServlet
Throws:
ServletException

isSignOnNecessary

public static boolean isSignOnNecessary(Application app,
                                        HttpServletRequest req)
                                 throws CMException
Tests if the user has to sign on to the application. Even if the application is marked as sign-on optional, a user may still be forced to sign on if the user is attempting to go straight to an operation that is guarded.

Throws:
CMException

pageExpired

protected void pageExpired(HttpServletRequest request,
                           HttpServletResponse response)
                    throws CMException
Description copied from class: DataEngineServlet
This method is called when a page has expired. Subclasses should override this method if they need to handle page expirations differently.

Overrides:
pageExpired in class DataEngineServlet
Throws:
CMException

preHandleServiceRequest

public boolean preHandleServiceRequest(HttpServletRequest request,
                                       HttpServletResponse response)
This method handles generic DataEngine service requests. As well as ensures the application being called has its unique session identifier set.

Overrides:
preHandleServiceRequest in class DataEngineServlet

processApplication

public void processApplication(Application app,
                               HttpServletRequest request,
                               HttpServletResponse res)
                        throws CMException
Throws:
CMException

processRequest

public void processRequest(HttpServletRequest req,
                           HttpServletResponse res)
This is the main delegating method called after doPost and doGet. It determines the correct application and invokes the processApplication() method Creation date: (3/22/2002 5:03:02 PM)

Specified by:
processRequest in class DataEngineServlet
Parameters:
req - request
res - response

processSQLOperation

public void processSQLOperation(SQLOperation pSQLOperation,
                                java.lang.String pJsp,
                                HttpServletRequest pReq,
                                HttpServletResponse pRes)
Deprecated.  


sessionTimedOut

protected void sessionTimedOut(HttpServletRequest request,
                               HttpServletResponse response)
                        throws CMException
This method is called when the user's session timeouts. Subclasses should override this method if they need to handle session timeouts differently. This method sets an error message in the request and forwards to the servlet's initial page.

Overrides:
sessionTimedOut in class DataEngineServlet
Parameters:
request -
response -
Throws:
CMException

verifySignOn

public boolean verifySignOn(Application application,
                            HttpServletRequest request,
                            HttpServletResponse response)
                     throws CMException
Checks to see if the user is signed on to the Application. If the user is not signed on, then the user will either be routed to the sign on screen (if one exists) or automatically signed on. Note that this method assumes that the Application's Sign On URI is the URI of a JSP which will be displayed as the body of the Application's JSP. If this is not true and the Application's URI instead represents a different Servlet or JSP, then this method can be overridden and the DESTINATION_URI set appropriately.

Returns:
false if the user is not signed on to the Application, true if the user is signed on.
Throws:
CMException

navigationError

protected void navigationError(HttpServletRequest request,
                               HttpServletResponse response)
                        throws CMException
Overrides:
navigationError in class DataEngineServlet
Throws:
CMException