1 package org.apache.turbine.services.servlet;
2
3
4 /*
5 * Licensed to the Apache Software Foundation (ASF) under one
6 * or more contributor license agreements. See the NOTICE file
7 * distributed with this work for additional information
8 * regarding copyright ownership. The ASF licenses this file
9 * to you under the Apache License, Version 2.0 (the
10 * "License"); you may not use this file except in compliance
11 * with the License. You may obtain a copy of the License at
12 *
13 * http://www.apache.org/licenses/LICENSE-2.0
14 *
15 * Unless required by applicable law or agreed to in writing,
16 * software distributed under the License is distributed on an
17 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18 * KIND, either express or implied. See the License for the
19 * specific language governing permissions and limitations
20 * under the License.
21 */
22
23
24 import java.io.InputStream;
25 import java.net.URL;
26
27 import javax.servlet.ServletConfig;
28 import javax.servlet.ServletContext;
29
30 import org.apache.turbine.services.TurbineServices;
31
32 /**
33 * Simple static accessor to the EngineContextService
34 *
35 * @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
36 * @author <a href="mailto:raphael@apache.org">Raphaƫl Luta</a>
37 * @author <a href="mailto:ekkerbj@netscape.net">Jeff Brekke</a>
38 * @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a>
39 * @version $Id: TurbineServlet.java 1071044 2011-02-15 20:47:31Z tv $
40 */
41 public class TurbineServlet
42 {
43 /**
44 * Utility method for accessing the service
45 * implementation
46 *
47 * @return a ServletService implementation instance
48 */
49 protected static ServletService getService()
50 {
51 return (ServletService) TurbineServices
52 .getInstance().getService(ServletService.SERVICE_NAME);
53 }
54
55 /**
56 * Returns an URL object for a given URI string.
57 * This URI is considered relative to the context.
58 *
59 * @param uri the URI to resolve as an URL
60 * @return an URL object or null is the uri is malformed or can't be resolved
61 */
62 public static URL getResource(String uri)
63 {
64 return getService().getResource(uri);
65 }
66
67 /**
68 * Same as getResource except that it returns an InputStream
69 *
70 * @see javax.servlet.ServletContext#getResourceAsStream
71 * @param uri the URI to resolve
72 * @return an InputStream on the URI content or null
73 */
74 public static InputStream getResourceAsStream(String uri)
75 {
76 return getService().getResourceAsStream(uri);
77 }
78
79 /**
80 * Returns the complete filesystem path for a
81 * given URI
82 *
83 * @see javax.servlet.ServletContext#getRealPath
84 * @param uri the URI to resolve
85 * @return the full system path of this URI
86 */
87 public static String getRealPath(String path)
88 {
89 return getService().getRealPath(path);
90 }
91
92 /**
93 * Returns the servlet config used by this
94 * Turbine web application.
95 *
96 * @return turbine servlet config
97 */
98 public static ServletConfig getServletConfig()
99 {
100 return getService().getServletConfig();
101 }
102
103 /**
104 * Returns the servlet context used by this
105 * Turbine web application.
106 *
107 * @return turbine servlet context
108 */
109 public static ServletContext getServletContext()
110 {
111 return getService().getServletContext();
112 }
113
114 /**
115 * Returns the server scheme for this
116 * Turbine application. This will either
117 * be http or https.
118 *
119 * @return String
120 */
121 public static String getServerScheme()
122 {
123 return getService().getServerScheme();
124 }
125
126 /**
127 * Returns the server name that this
128 * Turbine application is running
129 * on.
130 *
131 * @return String
132 */
133 public static String getServerName()
134 {
135 return getService().getServerName();
136 }
137
138 /**
139 * Returns the port that this Turbine
140 * application is running through
141 * on the server.
142 *
143 * @return String
144 */
145 public static String getServerPort()
146 {
147 return getService().getServerPort();
148 }
149
150 /**
151 * Returns the context path for this
152 * Turbine application.
153 *
154 * @return String
155 */
156 public static String getContextPath()
157 {
158 return getService().getContextPath();
159 }
160 }