ServletContext和ServletConfig对象

ServletContext:
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用,由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。
作用:⒈多个Servlet通过ServletContext对象实现数据共享。
⒉获取WEB应用的初始化参数。
⒊实现Servlet的转发。

使用web应用下加载资源文件的方法:
* 1. getRealPath读取,返回资源文件的绝对路径
*/
/*String path = this.getServletContext().getRealPath(“/WEB-INF/classes/db.properties”);
System.out.println(path);
File file = new File(path);
FileInputStream in = new FileInputStream(file);*/

    /**
     * 2. getResourceAsStream() 得到资源文件,返回的是输入流
     */
    InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
    我的理解是:因为使用的是ServletContext对象,在调用其方法书写路径时,/代表的就是当前应用。

一些方法:

java.lang.String getContextPath()   --得到当前web应用的路径

getInitParameter(java.lang.String name)  --得到web应用的初始化参数

java.util.Enumeration getInitParameterNames()  

void setAttribute(java.lang.String name, java.lang.Object object) --域对象有关的方法

java.lang.Object getAttribute(java.lang.String name)  
void removeAttribute(java.lang.String name)  

RequestDispatcher getRequestDispatcher(java.lang.String path)   --转发(类似于重定向)

java.lang.String getRealPath(java.lang.String path)     --得到web应用的资源文件
java.io.InputStream getResourceAsStream(java.lang.String path)  

 得到web应用路径
        java.lang.String getContextPath()  用在请求重定向的资源名称中
得到web应用的初始化参数(全局)
        java.lang.String getInitParameter(java.lang.String name)  --得到web应用的初始化参数
            java.util.Enumeration getInitParameterNames()  

                web应用参数可以让当前web应用的所有servlet获取!!!

ServletConfig: 主要是用于加载servlet的初始化参数。在一个web应用可以存在多个ServletConfig对象(一个Servlet对应一个ServletConfig对象)

一些方法:
ServletConfig的API:
java.lang.String getInitParameter(java.lang.String name) 根据参数名获取参数值
java.util.Enumeration getInitParameterNames() 获取所有参数
ServletContext getServletContext() 得到servlet上下文对象
java.lang.String getServletName() 得到servlet的名称

你可能感兴趣的:(servlet)