001 // Copyright 2006, 2007, 2008 The Apache Software Foundation
002 //
003 // Licensed under the Apache License, Version 2.0 (the "License");
004 // you may not use this file except in compliance with the License.
005 // You may obtain a copy of the License at
006 //
007 // http://www.apache.org/licenses/LICENSE-2.0
008 //
009 // Unless required by applicable law or agreed to in writing, software
010 // distributed under the License is distributed on an "AS IS" BASIS,
011 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012 // See the License for the specific language governing permissions and
013 // limitations under the License.
014
015 package org.apache.tapestry5.services;
016
017 import org.apache.tapestry5.services.Request;
018 import org.apache.tapestry5.services.Response;
019
020 import javax.servlet.http.HttpServletRequest;
021 import javax.servlet.http.HttpServletResponse;
022
023 /**
024 * Service used to store the current request objects, both the Servlet API versions, and the
025 * Tapestry generic versions.
026 * The service has a per-thread scope.
027 */
028 public interface RequestGlobals
029 {
030 /**
031 * Stores the servlet API request and response objects, for access via the properties.
032 */
033 void storeServletRequestResponse(HttpServletRequest request, HttpServletResponse response);
034
035 /**
036 * The Servlet API Request. This is exposed as service HTTPServletRequest.
037 */
038 HttpServletRequest getHTTPServletRequest();
039
040 HttpServletResponse getHTTPServletResponse();
041
042 void storeRequestResponse(Request request, Response response);
043
044 /**
045 * The current request. This is exposed as service Request.
046 */
047 Request getRequest();
048
049 /**
050 * The current response. This is exposed as service Response.
051 */
052 Response getResponse();
053
054 /**
055 * Stores the {@linkplain ComponentClassResolver#canonicalizePageName(String) canonicalized}
056 * name of the active page for this request.
057 *
058 * @param pageName
059 * name of page (probably extracted from the URL)
060 * @since 5.2.0
061 */
062 void storeActivePageName(String pageName);
063
064 /**
065 * Returns the active page name previously stored.
066 *
067 * @return canonicalized page name
068 * @since 5.2.0
069 */
070 String getActivePageName();
071 }