001 package org.apache.turbine.services.jsp;
002
003
004 /*
005 * Licensed to the Apache Software Foundation (ASF) under one
006 * or more contributor license agreements. See the NOTICE file
007 * distributed with this work for additional information
008 * regarding copyright ownership. The ASF licenses this file
009 * to you under the Apache License, Version 2.0 (the
010 * "License"); you may not use this file except in compliance
011 * with the License. You may obtain a copy of the License at
012 *
013 * http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing,
016 * software distributed under the License is distributed on an
017 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
018 * KIND, either express or implied. See the License for the
019 * specific language governing permissions and limitations
020 * under the License.
021 */
022
023
024 import org.apache.turbine.services.Service;
025
026 import org.apache.turbine.util.RunData;
027 import org.apache.turbine.util.TurbineException;
028
029
030 /**
031 * Implementations of the JspService interface.
032 *
033 * @author <a href="mailto:john.mcnally@clearink.com">John D. McNally</a>
034 */
035 public interface JspService
036 extends Service
037 {
038 /** The name used to specify this service in Turbine.properties */
039 String SERVICE_NAME = "JspService";
040
041 /** The key used to store an instance of RunData in the request */
042 String RUNDATA = "rundata";
043
044 /** The key used to store an instance of JspLink in the request */
045 String LINK = "link";
046
047 /** The default extension of JSPs */
048 String JSP_EXTENSION = "jsp";
049
050 /** Property key for Template Pathes */
051 String TEMPLATE_PATH_KEY = "templates";
052
053 /** Property for Jsp Page Buffer Size */
054 String BUFFER_SIZE_KEY = "buffer.size";
055
056 /** Default Value for Jsp Page Buffer Size */
057 int BUFFER_SIZE_DEFAULT = 8192;
058
059 /**
060 * Adds some convenience objects to the request. For example an instance
061 * of JspLink which can be used to generate links to other templates.
062 *
063 * @param data the turbine rundata object
064 */
065 void addDefaultObjects(RunData data);
066
067 /**
068 * executes the JSP given by templateName.
069 *
070 * @param data A RunData Object
071 * @param templateName The template to execute
072 * @param isForward whether to perform a forward or include.
073 *
074 * @throws TurbineException If a problem occured while executing the JSP
075 */
076 void handleRequest(RunData data, String templateName, boolean isForward)
077 throws TurbineException;
078
079 /**
080 * executes the JSP given by templateName.
081 *
082 * @param data A RunData Object
083 * @param templateName The template to execute
084 *
085 * @throws TurbineException If a problem occured while executing the JSP
086 */
087 void handleRequest(RunData data, String templateName)
088 throws TurbineException;
089
090 /**
091 * Returns the default buffer size of the JspService
092 *
093 * @return The default buffer size.
094 */
095 int getDefaultBufferSize();
096
097 /**
098 * Searchs for a template in the default.template path[s] and
099 * returns the template name with a relative path which is required
100 * by <a href="http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/ServletContext.html#getRequestDispatcher(java.lang.String)">javax.servlet.RequestDispatcher</a>
101 *
102 * @param template The name of the template to search for.
103 *
104 * @return the template with a relative path
105 */
106 String getRelativeTemplateName(String template);
107
108 }