ServletConfig和ServletContext的简单使用
ServletConfig对象ServletConfig:代表当前Servlet在web.xml中的配置信息(用的不多)在Servlet的配置文件中,可以使用一个或多个init-param>标签为servlet配置一些初始化参数。当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对
·
ServletConfig对象
ServletConfig:代表当前Servlet在web.xml中的配置信息(用的不多)
在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。
package javax.servlet;import java.util.Enumeration;import javax.servlet.ServletContext;public interface ServletConfig {String getServletName(); // 获取当前Servlet在web.xml中配置的名字ServletContext getServletContext();// 获取代表当前web应用的ServletContext对象String getInitParameter(String var1);// 获取当前Servlet指定名称的初始化参数的值Enumeration<String> getInitParameterNames();// 获取当前Servlet所有初始化参数的名字组成的枚举}
使用
实体类 extends HttpServletServletConfig config = this.getServletConfig(); //拿到init方法中的ServletConfig对象
ServletContext对象
ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。request,一个用户可有多个;session,一个用户一个;而servletContext,所有用户共用一个。所以,为了节省空间,提高效率,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.Filter;import javax.servlet.FilterRegistration;import javax.servlet.RequestDispatcher;import javax.servlet.Servlet;import javax.servlet.ServletException;import javax.servlet.ServletRegistration;import javax.servlet.SessionCookieConfig;import javax.servlet.SessionTrackingMode;import javax.servlet.ServletRegistration.Dynamic;import javax.servlet.descriptor.JspConfigDescriptor;public interface ServletContext {String TEMPDIR = "javax.servlet.context.tempdir";String ORDERED_LIBS = "javax.servlet.context.orderedLibs";String getContextPath();ServletContext getContext(String var1);int getMajorVersion();int getMinorVersion();int getEffectiveMajorVersion();int getEffectiveMinorVersion();String getMimeType(String var1);Set<String> getResourcePaths(String var1);URL getResource(String var1) throws MalformedURLException;InputStream getResourceAsStream(String var1);RequestDispatcher getRequestDispatcher(String var1);RequestDispatcher getNamedDispatcher(String var1);/** @deprecated */Servlet getServlet(String var1) throws ServletException;/** @deprecated */Enumeration<Servlet> getServlets();/** @deprecated */Enumeration<String> getServletNames();void log(String var1);/** @deprecated */void log(Exception var1, String var2);void log(String var1, Throwable var2);String getRealPath(String var1);String getServerInfo();String getInitParameter(String var1);Enumeration<String> getInitParameterNames();boolean setInitParameter(String var1, String var2);Object getAttribute(String var1);Enumeration<String> getAttributeNames();void setAttribute(String var1, Object var2);void removeAttribute(String var1);String getServletContextName();Dynamic addServlet(String var1, String var2);Dynamic addServlet(String var1, Servlet var2);Dynamic addServlet(String var1, Class<? extends Servlet> var2);<T extends Servlet> T createServlet(Class<T> var1) throws ServletException;ServletRegistration getServletRegistration(String var1);Map<String, ? extends ServletRegistration> getServletRegistrations();javax.servlet.FilterRegistration.Dynamic addFilter(String var1, String var2);javax.servlet.FilterRegistration.Dynamic addFilter(String var1, Filter var2);javax.servlet.FilterRegistration.Dynamic addFilter(String var1, Class<? extends Filter> var2);<T extends Filter> T createFilter(Class<T> var1) throws ServletException;FilterRegistration getFilterRegistration(String var1);Map<String, ? extends FilterRegistration> getFilterRegistrations();SessionCookieConfig getSessionCookieConfig();void setSessionTrackingModes(Set<SessionTrackingMode> var1);Set<SessionTrackingMode> getDefaultSessionTrackingModes();Set<SessionTrackingMode> getEffectiveSessionTrackingModes();void addListener(String var1);<T extends EventListener> void addListener(T var1);void addListener(Class<? extends EventListener> var1);<T extends EventListener> T createListener(Class<T> var1) throws ServletException;JspConfigDescriptor getJspConfigDescriptor();ClassLoader getClassLoader();void declareRoles(String... var1);String getVirtualServerName();}
ServletContext的应用:
1、获取WEB应用的初始化参数
我们在第一段中,通过<init-param>标签为某一个单独的servlet加配置信息,这种配置信息在其他的Servlet中是无法访问到的。可如果我们使用<context-param>标签(与Servlet标签并列)为整个Web应用配置属性的话,那所有的Servlet就都能访问里面的参数了。
这里涉及到一些概念不要混淆:
- 请求参数 parameter --- 浏览器发送过来的请求中的参数信息
- 初始化参数 initparameter --- 在web.xml中为Servlet或ServletContext配置的初始化时带有的基本参数
- 域属性 attribute --- 四大作用域中存取的键值对
1.1.获取Tomcat的server.xml中设置Context的初始化参数。
<Context path="/testcontext" docBase="/context"privileged="true" antiResourceLocking="false" antiJARLocking="false"debug="0" reloadable="true"><Parameter name="name" value="yangqisheng" /></Context>
方式:getServletContext().getInitParameter(String name)
1.2.获取在项目下的web.xml中设置Context的初始化参数。
<context-param><param-name>age</param-name><param-value>24</param-value></context-param>
方式:getServletContext().getInitParameter(String name)
2.加载资源文件:
getResource(String parh)方法:其中path必须是/开头,代表当前web应用程序的根目录。返回返回的一个代表某个资源的URL对象。getResoutceAsStream(String parh),返回文件流。这个好处是可以使用相对于根目录的路径访问到web目录下的所有文件,而不必知道绝对路径。
更多推荐




所有评论(0)