ServletConfig和ServletContext的简单使用

简介: ServletConfig和ServletContext的简单使用

ServletConfig对象


ServletConfig:代表当前Servlet在web.xml中的配置信息(用的不多

  1. 在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。
  2. 当servlet配置了初始化参数后,web容器在创建servlet实例对象时,
  3. 会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。
  4. 进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。


  1. package javax.servlet;
  2. import java.util.Enumeration;
  3. import javax.servlet.ServletContext;
  4. publicinterfaceServletConfig {
  5.    String getServletName(); // 获取当前Servlet在web.xml中配置的名字
  6.    ServletContext getServletContext();// 获取代表当前web应用的ServletContext对象
  7.    String getInitParameter(String var1);// 获取当前Servlet指定名称的初始化参数的值
  8.    Enumeration<String> getInitParameterNames();// 获取当前Servlet所有初始化参数的名字组成的枚举
  9. }


使用


  1. 实体类 extendsHttpServlet
  2. ServletConfigconfig=this.getServletConfig();  //拿到init方法中的ServletConfig对象


ServletContext对象


  1. ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。
  2. request,一个用户可有多个;session,一个用户一个;而servletContext,所有用户共用一个。
  3. 所以,为了节省空间,提高效率,ServletContext中,要放必须的、重要的、所有用户需要共享的线程又是安全的一些信息。
  1. 上下文对象类似一个全局变量,在整个应用中有效
  2. 利用上下文对象,可以实现多个用户之间的数据共享



  1. package javax.servlet;
  2. import java.io.InputStream;
  3. import java.net.MalformedURLException;
  4. import java.net.URL;
  5. import java.util.Enumeration;
  6. import java.util.EventListener;
  7. import java.util.Map;
  8. import java.util.Set;
  9. import javax.servlet.Filter;
  10. import javax.servlet.FilterRegistration;
  11. import javax.servlet.RequestDispatcher;
  12. import javax.servlet.Servlet;
  13. import javax.servlet.ServletException;
  14. import javax.servlet.ServletRegistration;
  15. import javax.servlet.SessionCookieConfig;
  16. import javax.servlet.SessionTrackingMode;
  17. import javax.servlet.ServletRegistration.Dynamic;
  18. import javax.servlet.descriptor.JspConfigDescriptor;
  19. publicinterfaceServletContext {
  20.    StringTEMPDIR="javax.servlet.context.tempdir";
  21.    StringORDERED_LIBS="javax.servlet.context.orderedLibs";
  22.    String getContextPath();
  23.    ServletContext getContext(String var1);
  24.    intgetMajorVersion();
  25.    intgetMinorVersion();
  26.    intgetEffectiveMajorVersion();
  27.    intgetEffectiveMinorVersion();
  28.    String getMimeType(String var1);
  29.    Set<String> getResourcePaths(String var1);
  30.    URL getResource(String var1)throws MalformedURLException;
  31. InputStream getResourceAsStream(String var1);
  32.    RequestDispatcher getRequestDispatcher(String var1);
  33.    RequestDispatcher getNamedDispatcher(String var1);
  34.    /** @deprecated */
  35.    Servlet getServlet(String var1)throws ServletException;
  36.    /** @deprecated */
  37.    Enumeration<Servlet> getServlets();
  38.    /** @deprecated */
  39.    Enumeration<String> getServletNames();
  40.    voidlog(String var1);
  41.    /** @deprecated */
  42.    voidlog(Exception var1, String var2);
  43.    voidlog(String var1, Throwable var2);
  44.    String getRealPath(String var1);
  45.    String getServerInfo();
  46.    String getInitParameter(String var1);
  47.    Enumeration<String> getInitParameterNames();
  48.    booleansetInitParameter(String var1, String var2);
  49.    Object getAttribute(String var1);
  50. Enumeration<String> getAttributeNames();
  51. voidsetAttribute(String var1, Object var2);
  52. voidremoveAttribute(String var1);
  53.    String getServletContextName();
  54.    Dynamic addServlet(String var1, String var2);
  55.    Dynamic addServlet(String var1, Servlet var2);
  56.    Dynamic addServlet(String var1, Class<? extends Servlet> var2);
  57.    <T extendsServlet> T createServlet(Class<T> var1)throws ServletException;
  58.    ServletRegistration getServletRegistration(String var1);
  59.    Map<String, ? extendsServletRegistration> getServletRegistrations();
  60.    javax.servlet.FilterRegistration.Dynamic addFilter(String var1, String var2);
  61.    javax.servlet.FilterRegistration.Dynamic addFilter(String var1, Filter var2);
  62.    javax.servlet.FilterRegistration.Dynamic addFilter(String var1, Class<? extends Filter> var2);
  63.    <T extendsFilter> T createFilter(Class<T> var1)throws ServletException;
  64.    FilterRegistration getFilterRegistration(String var1);
  65.    Map<String, ? extendsFilterRegistration> getFilterRegistrations();
  66.    SessionCookieConfig getSessionCookieConfig();
  67.    voidsetSessionTrackingModes(Set<SessionTrackingMode> var1);
  68.    Set<SessionTrackingMode> getDefaultSessionTrackingModes();
  69.    Set<SessionTrackingMode> getEffectiveSessionTrackingModes();
  70.    voidaddListener(String var1);
  71.    <T extendsEventListener> voidaddListener(T var1);
  72.    voidaddListener(Class<? extends EventListener> var1);
  73.    <T extendsEventListener> T createListener(Class<T> var1)throws ServletException;
  74.    JspConfigDescriptor getJspConfigDescriptor();
  75.    ClassLoader getClassLoader();
  76.    voiddeclareRoles(String... var1);
  77.    String getVirtualServerName();
  78. }


ServletContext的应用:


1、获取WEB应用的初始化参数


  1. 我们在第一段中,通过<init-param>标签为某一个单独的servlet加配置信息,这种配置信息在其他的Servlet中是无法访问到的。
  2. 可如果我们使用<context-param>标签(与Servlet标签并列)为整个Web应用配置属性的话,那所有的Servlet就都能访问里面的参数了。


这里涉及到一些概念不要混淆:

  • 请求参数 parameter --- 浏览器发送过来的请求中的参数信息
  • 初始化参数 initparameter --- 在web.xml中为Servlet或ServletContext配置的初始化时带有的基本参数
  • 域属性 attribute --- 四大作用域中存取的键值对

1.1.获取Tomcat的server.xml中设置Context的初始化参数。

  1. <Contextpath="/testcontext"docBase="/context"  
  2.         privileged="true" antiResourceLocking="false" antiJARLocking="false"  
  3.         debug="0" reloadable="true">  
  4.    <Parametername="name"value="yangqisheng" />  
  5. </Context>  
  6. 方式:getServletContext().getInitParameter(String name)


1.2.获取在项目下的web.xml中设置Context的初始化参数。

  1. <context-param>  
  2.    <param-name>age</param-name>  
  3.    <param-value>24</param-value>  
  4. </context-param>  
  5. 方式:getServletContext().getInitParameter(String name)


2.加载资源文件:

  1. getResource(String parh)方法:其中path必须是/开头,代表当前web应用程序的根目录。返回返回的一个代表某个资源的URL对象。
  2. getResoutceAsStream(String parh),返回文件流。这个好处是可以使用相对于根目录的路径访问到web目录下的所有文件,而不必知道绝对路径。


参考来源: http://blog.csdn.net/yakson/article/details/9203267

参考来源:  http://blog.csdn.net/lvzhiyuan/article/details/4664624

来源: https://www.cnblogs.com/smyhvae/p/4140877.html


目录
相关文章
|
存储 应用服务中间件 数据库
【JavaWeb】知识总结Ⅸ(ServletConfig, ServletContext)
ServletConfig 类是为 Servlet 程序的配置信息的类 2. Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责创建 3. Servlet 程序默认是第 1 次访问的时候创建, ServletConfig 在 Servlet 程序创建时,就创 建一个对应的 ServletConfig ServletConfig 类能干什么 1. 获取 Servlet 程序的 servlet-name 的值 2. 获取初始化参数 init-param 3. 获取 ServletContext 对象
ServletContext和ServletConfig使用说明
ServletContext和ServletConfig使用说明
43 0
|
存储 应用服务中间件 API
JavaWeb 速通Servlet(ServletConfig和ServletContext)
JavaWeb——ServletConfig 和 ServletContext 内容分享。
60 1
|
XML 关系型数据库 MySQL
ServletConfig和ServletContext 的介绍和代码实现
ServletConfig和ServletContext 的介绍和代码实现
72 0
|
存储 应用服务中间件 测试技术
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
72 1
|
应用服务中间件 容器
ServletConfig、ServletContext概述、配置及ServletContext的三个作用
ServletConfig、ServletContext概述、配置及ServletContext的三个作用
158 0
Servlet——ServletContext对象功能
Servlet——ServletContext对象功能
97 0
|
XML Java 应用服务中间件
谈谈 ServletConfig 和 ServletContext
我们都知道Servlet是框架的灵魂,学习web框架最底层离不开Servlet的支持,那么Servlet 是什么呢?如何创建一个Servlet 不是本文的重点,相关文章可以参考
95 0
javaweb ServletContext对象
javaweb ServletContext对象