JAVA-Servlet-ServletConfig 与 ServletContext 的区别

什么是ServletConfig?

Servlet容器初始化一个servlet对象时,会为这个servlet对象创建一个servletConfig对象。在servletConfig对象中包含了servlet的初始化参数信息。此外,servletConfig对象还与servletContext对象关联。Servlet容器在调用servlet对象的init(ServletConfig  config)方法时,会把servletConfig对象当做参数传递给servlet对象。Init(ServletConfig  config)方法会使得当前servlet对象与servletConfig对象建立关联关系.一般不会使用这种方法的。而是调用this.Getservletconfig servletConfig接口中定义了一下方法。                  

Servlet容器初始化一个servlet对象时,会为这个servlet对象创建一个servletConfig对象。在servletConfig对象中包含了servlet的初始化参数信息。

serevletconfig是跟整个servlet有关的,跟客户端是否存在无关。下面就是各个重要的对象的关系,也就是说,建立了servletconfig之后,你的client关闭了,但是只要服务器开着,其他的客户端也是可以访问这个servletconfig的。 Httpservelrtrequest 和 httpserveltresponse Httpsession Servletconfig Servletcontext

相关方法:

 getInitParameter(String   name):根据给定的初始化参数,返回匹配的初始化参数值。 
 getInitParameterNmes():返回一个Enumeration对象,里面包含了

所有的初始化参数。 
 getServletContext()://返回一个servletContext()对象
 getServltName():返回servlet的名字,即web.xml中的<servlet-name>的子元素的值。如果没有配置这个子元素,则返回servlet类的名字

那什么是ServletContext ?

ServletContext是整个web项目应用程序运行后的代表对象。可以通过ServletConfig的getServletContext() 的方法得到,然后可以用该对象取得整个应用程序的相关资源或者信息。

相关方法:

getRequestDispatcher();// 使用路径是必须使用 "/" 这个斜杠代表应用程序环境的根目录.同时通过取得RequestDispatcher实例之后,就可以进行请求的转发(Forward)或者包含了(Include)

例子:

this.getRequestDispatcher("/photo/1.jpg").forward(request,response); //得到根目录下的photo文件夹下的图片1.jpg

getResourcePaths();//可以得到web应用程序(WebContent/webRoot)的某个目录有什么文件  以"/" 表示相对于应用程序环境根目录

例子:

this.getservletContext().this.getResourcePaths("/");

getResourceAsStream(); //可以得到web应用程序(webContent/webRoot)的某个目录下某个文件的流,然后对文件进行读取, 以"/" 表示相对于应用程序环境根目录

例如:

InputStream in = this.getServletContext().getResourceAsStream("/index.jsp");
    BufferedInputStream bin = new BufferedInputStream(in);
    int b  ;
    while((b = bin.read())!= -1){
            System.out.println(b);
        }
原文地址:https://www.cnblogs.com/tjc1996/p/5713616.html