可以看到,Servlet接口里面只有五个方法:init()、getServletConfig()、service()、getServletInfo()、destroy()。其中init()、service()、destroy()三个方法是和servlet生命周期相关的方法,在生命周期的不同时间段内会执行不同的方法,其顺序是init()->service()->destroy()。其中init()、destroy()方法在servlet生命周期中都只执行一次,而service()方法可以多次执行。Servlet接口是Servlet类最底层、最基础、最重要的接口。
3、ServletConfig接口
先看源码:
package javax.servlet;
import java.util.Enumeration;
public abstract interface ServletConfig {
public abstract String getServletName();
public abstract ServletContext getServletContext();
public abstract String getInitParameter(String paramString);
public abstract Enumeration<String> getInitParameterNames();
}
getServletName():获取web.xml文件里面的servlet的名字(即<servlet-name>标签配置的名字)。
getServletContext():获取ServletContext对象,下面会介绍ServletContext接口。
getInitParameter():获取web.xml文件在servlet标签中配置的参数值(注意是servlet标签,而不是其他标签配置的参数值)。
getInitParameterNames():获取在Servlet中所有初始化参数的名字,也就是key值,可以通过key值,来找到各个初始化参数的value值(注意返回的是枚举类型)。

可以看到,ServletConfig接口里面的方法主要是获取web.xml文件里和servlet相关的配置信息。web项目访问jsp路径
4、ServletContext接口

先看源码:
package javax.servlet;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
import java.util.EventListener;
import java.util.Map;
import java.util.Set;
import javax.servlet.descriptor.JspConfigDescriptor;
public abstract interface ServletContext {
public static final String TEMPDIR = "javax.servlet.context.tempdir";
public static final String ORDERED_LIBS = "javax.servlet.context.orderedLibs";
public abstract ServletContext getContext(String paramString);
public abstract String getContextPath();
public abstract int getMajorVersion();
public abstract int getMinorVersion();
public abstract int getEffectiveMajorVersion();
public abstract int getEffectiveMinorVersion();
public abstract String getMimeType(String paramString);
public abstract Set<String> getResourcePaths(String paramString);
public abstract URL getResource(String paramString)
throws MalformedURLException;
public abstract InputStream getResourceAsStream(String paramString);
public abstract RequestDispatcher getRequestDispatcher(String paramString);
public abstract RequestDispatcher getNamedDispatcher(String paramString);
public abstract Servlet getServlet(String paramString)
throws ServletException;
public abstract Enumeration<Servlet> getServlets();
public abstract Enumeration<String> getServletNames();
public abstract void log(String paramString);
public abstract void log(Exception paramException, String paramString);
public abstract void log(String paramString, Throwable paramThrowable);
public abstract String getRealPath(String paramString);
public abstract String getServerInfo();
public abstract String getInitParameter(String paramString);
public abstract Enumeration<String> getInitParameterNames();
public abstract boolean setInitParameter(String paramString1,
String paramString2);
public abstract Object getAttribute(String paramString);
public abstract Enumeration<String> getAttributeNames();
public abstract void setAttribute(String paramString, Object paramObject);
public abstract void removeAttribute(String paramString);
public abstract String getServletContextName();
public abstract ServletRegistration.Dynamic addServlet(String paramString1,
String paramString2);
public abstract ServletRegistration.Dynamic addServlet(String paramString,
Servlet paramServlet);
public abstract ServletRegistration.Dynamic addServlet(String paramString,
Class<? extends Servlet> paramClass);
public abstract <T extends Servlet> T createServlet(Class<T> paramClass)
throws ServletException;
public abstract ServletRegistration getServletRegistration(
String paramString);
public abstract Map<String, ? extends ServletRegistration> getServletRegistrations();
public abstract FilterRegistration.Dynamic addFilter(String paramString1,
String paramString2);
public abstract FilterRegistration.Dynamic addFilter(String paramString,
Filter paramFilter);
public abstract FilterRegistration.Dynamic addFilter(String paramString,
Class<? extends Filter> paramClass);
public abstract <T extends Filter> T createFilter(Class<T> paramClass)
throws ServletException;
public abstract FilterRegistration getFilterRegistration(String paramString);
public abstract Map<String, ? extends FilterRegistration> getFilterRegistrations();
public abstract SessionCookieConfig getSessionCookieConfig();
public abstract void setSessionTrackingModes(
Set<SessionTrackingMode> paramSet) throws IllegalStateException,
IllegalArgumentException;
public abstract Set<SessionTrackingMode> getDefaultSessionTrackingModes();
public abstract Set<SessionTrackingMode> getEffectiveSessionTrackingModes();
public abstract void addListener(String paramString);
public abstract <T extends EventListener> void addListener(T paramT);
public abstract void addListener(Class<? extends EventListener> paramClass);
public abstract <T extends EventListener> T createListener(
Class<T> paramClass) throws ServletException;
public abstract void declareRoles(String[] paramArrayOfString);
public abstract ClassLoader getClassLoader();
public abstract JspConfigDescriptor getJspConfigDescriptor();
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-66452-2.html
在中国想要政商分离不可能