001package org.apache.turbine.services.servlet; 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 024import java.io.InputStream; 025import java.net.URL; 026 027import javax.servlet.ServletConfig; 028import javax.servlet.ServletContext; 029 030import org.apache.turbine.services.TurbineServices; 031 032/** 033 * Simple static accessor to the EngineContextService 034 * 035 * @author <a href="mailto:burton@apache.org">Kevin A. Burton</a> 036 * @author <a href="mailto:raphael@apache.org">Raphaƫl Luta</a> 037 * @author <a href="mailto:ekkerbj@netscape.net">Jeff Brekke</a> 038 * @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a> 039 * @version $Id: TurbineServlet.java 1706239 2015-10-01 13:18:35Z tv $ 040 */ 041public class TurbineServlet 042{ 043 /** 044 * Utility method for accessing the service 045 * implementation 046 * 047 * @return a ServletService implementation instance 048 */ 049 protected static ServletService getService() 050 { 051 return (ServletService) TurbineServices 052 .getInstance().getService(ServletService.SERVICE_NAME); 053 } 054 055 /** 056 * Returns an URL object for a given URI string. 057 * This URI is considered relative to the context. 058 * 059 * @param uri the URI to resolve as an URL 060 * @return an URL object or null is the uri is malformed or can't be resolved 061 */ 062 public static URL getResource(String uri) 063 { 064 return getService().getResource(uri); 065 } 066 067 /** 068 * Same as getResource except that it returns an InputStream 069 * 070 * @see javax.servlet.ServletContext#getResourceAsStream 071 * @param uri the URI to resolve 072 * @return an InputStream on the URI content or null 073 */ 074 public static InputStream getResourceAsStream(String uri) 075 { 076 return getService().getResourceAsStream(uri); 077 } 078 079 /** 080 * Returns the complete filesystem path for a 081 * given URI 082 * 083 * @see javax.servlet.ServletContext#getRealPath 084 * @param path the URI to resolve 085 * @return the full system path of this URI 086 */ 087 public static String getRealPath(String path) 088 { 089 return getService().getRealPath(path); 090 } 091 092 /** 093 * Returns the servlet config used by this 094 * Turbine web application. 095 * 096 * @return turbine servlet config 097 */ 098 public static ServletConfig getServletConfig() 099 { 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}