📄 servletcontext.java
字号:
/** Copyright 2004 The Apache Software Foundation** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/package javax.servlet;import java.io.InputStream;import java.net.MalformedURLException;import java.net.URL;import java.util.Enumeration;import java.util.Set;/** * * Defines a set of methods that a servlet uses to communicate with its * servlet container, for example, to get the MIME type of a file, dispatch * requests, or write to a log file. * * <p>There is one context per "web application" per Java Virtual Machine. (A * "web application" is a collection of servlets and content installed under a * specific subset of the server's URL namespace such as <code>/catalog</code> * and possibly installed via a <code>.war</code> file.) * * <p>In the case of a web * application marked "distributed" in its deployment descriptor, there will * be one context instance for each virtual machine. In this situation, the * context cannot be used as a location to share global information (because * the information won't be truly global). Use an external resource like * a database instead. * * <p>The <code>ServletContext</code> object is contained within * the {@link ServletConfig} object, which the Web server provides the * servlet when the servlet is initialized. * * @author Various * @version $Version$ * * @see Servlet#getServletConfig * @see ServletConfig#getServletContext * */public interface ServletContext { /** * Returns a <code>ServletContext</code> object that * corresponds to a specified URL on the server. * * <p>This method allows servlets to gain * access to the context for various parts of the server, and as * needed obtain {@link RequestDispatcher} objects from the context. * The given path must be begin with "/", is interpreted relative * to the server's document root and is matched against the context roots of * other web applications hosted on this container. * * <p>In a security conscious environment, the servlet container may * return <code>null</code> for a given URL. * * @param uripath a <code>String</code> specifying the context path of * another web application in the container. * @return the <code>ServletContext</code> object that * corresponds to the named URL, or null if either none exists or the container wishes to restrict * this access. * * @see RequestDispatcher * */ public ServletContext getContext(String uripath); /** * Returns the major version of the Java Servlet API that this * servlet container supports. All implementations that comply * with Version 2.4 must have this method * return the integer 2. * * @return 2 * */ public int getMajorVersion(); /** * Returns the minor version of the Servlet API that this * servlet container supports. All implementations that comply * with Version 2.4 must have this method * return the integer 4. * * @return 4 * */ public int getMinorVersion(); /** * Returns the MIME type of the specified file, or <code>null</code> if * the MIME type is not known. The MIME type is determined * by the configuration of the servlet container, and may be specified * in a web application deployment descriptor. Common MIME * types are <code>"text/html"</code> and <code>"image/gif"</code>. * * * @param file a <code>String</code> specifying the name * of a file * * @return a <code>String</code> specifying the file's MIME type * */ public String getMimeType(String file); /** * Returns a directory-like listing of all the paths to resources within the web application whose longest sub-path * matches the supplied path argument. Paths indicating subdirectory paths end with a '/'. The returned paths are all * relative to the root of the web application and have a leading '/'. For example, for a web application * containing<br><br> * /welcome.html<br> * /catalog/index.html<br> * /catalog/products.html<br> * /catalog/offers/books.html<br> * /catalog/offers/music.html<br> * /customer/login.jsp<br> * /WEB-INF/web.xml<br> * /WEB-INF/classes/com.acme.OrderServlet.class,<br><br> * * getResourcePaths("/") returns {"/welcome.html", "/catalog/", "/customer/", "/WEB-INF/"}<br> * getResourcePaths("/catalog/") returns {"/catalog/index.html", "/catalog/products.html", "/catalog/offers/"}.<br> *@param path the partial path used to match the resources, * which must start with a / *@return a Set containing the directory listing, or null if there are no resources in the web application whose path * begins with the supplied path. * @since Servlet 2.3 */ public Set getResourcePaths(String path); /** * Returns a URL to the resource that is mapped to a specified * path. The path must begin with a "/" and is interpreted * as relative to the current context root. * * <p>This method allows the servlet container to make a resource * available to servlets from any source. Resources * can be located on a local or remote * file system, in a database, or in a <code>.war</code> file. * * <p>The servlet container must implement the URL handlers * and <code>URLConnection</code> objects that are necessary * to access the resource. * * <p>This method returns <code>null</code> * if no resource is mapped to the pathname. * * <p>Some containers may allow writing to the URL returned by * this method using the methods of the URL class. * * <p>The resource content is returned directly, so be aware that * requesting a <code>.jsp</code> page returns the JSP source code. * Use a <code>RequestDispatcher</code> instead to include results of * an execution. * * <p>This method has a different purpose than * <code>java.lang.Class.getResource</code>, * which looks up resources based on a class loader. This * method does not use class loaders. * * @param path a <code>String</code> specifying * the path to the resource * * @return the resource located at the named path, * or <code>null</code> if there is no resource * at that path * * @exception MalformedURLException if the pathname is not given in * the correct form * */ public URL getResource(String path) throws MalformedURLException; /** * Returns the resource located at the named path as * an <code>InputStream</code> object. * * <p>The data in the <code>InputStream</code> can be * of any type or length. The path must be specified according * to the rules given in <code>getResource</code>. * This method returns <code>null</code> if no resource exists at * the specified path. * * <p>Meta-information such as content length and content type * that is available via <code>getResource</code> * method is lost when using this method. * * <p>The servlet container must implement the URL handlers * and <code>URLConnection</code> objects necessary to access * the resource. * * <p>This method is different from * <code>java.lang.Class.getResourceAsStream</code>, * which uses a class loader. This method allows servlet containers * to make a resource available * to a servlet from any location, without using a class loader. * * * @param path a <code>String</code> specifying the path * to the resource * * @return the <code>InputStream</code> returned to the * servlet, or <code>null</code> if no resource * exists at the specified path * * */ public InputStream getResourceAsStream(String path); /** * * Returns a {@link RequestDispatcher} object that acts * as a wrapper for the resource located at the given path. * A <code>RequestDispatcher</code> object can be used to forward * a request to the resource or to include the resource in a response. * The resource can be dynamic or static. * * <p>The pathname must begin with a "/" and is interpreted as relative * to the current context root. Use <code>getContext</code> to obtain * a <code>RequestDispatcher</code> for resources in foreign contexts. * This method returns <code>null</code> if the <code>ServletContext</code> * cannot return a <code>RequestDispatcher</code>. * * @param path a <code>String</code> specifying the pathname * to the resource * * @return a <code>RequestDispatcher</code> object * that acts as a wrapper for the resource * at the specified path, or <code>null</code> if * the <code>ServletContext</code> cannot return * a <code>RequestDispatcher</code> * * @see RequestDispatcher * @see ServletContext#getContext * */ public RequestDispatcher getRequestDispatcher(String path); /** * Returns a {@link RequestDispatcher} object that acts * as a wrapper for the named servlet. * * <p>Servlets (and JSP pages also) may be given names via server * administration or via a web application deployment descriptor. * A servlet instance can determine its name using * {@link ServletConfig#getServletName}. * * <p>This method returns <code>null</code> if the * <code>ServletContext</code> * cannot return a <code>RequestDispatcher</code> for any reason. * * @param name a <code>String</code> specifying the name * of a servlet to wrap * * @return a <code>RequestDispatcher</code> object * that acts as a wrapper for the named servlet, * or <code>null</code> if the <code>ServletContext</code> * cannot return a <code>RequestDispatcher</code> * * @see RequestDispatcher * @see ServletContext#getContext * @see ServletConfig#getServletName * */ public RequestDispatcher getNamedDispatcher(String name); /** * * @deprecated As of Java Servlet API 2.1, with no direct replacement. * * <p>This method was originally defined to retrieve a servlet * from a <code>ServletContext</code>. In this version, this method * always returns <code>null</code> and remains only to preserve * binary compatibility. This method will be permanently removed * in a future version of the Java Servlet API.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -