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); }