Servlet技术浅析(五)之-----ServletConfig接口和ServletContext接口

来源:互联网 发布:mac 一个或多个 编辑:程序博客网 时间:2024/05/22 02:19

第一部分:ServletConfig接口

一、简述

         Servlet接口的init(ServletConfig config)方法有一个ServletConfig类型的参数。当Servlet容器初始化一个Servlet对象时,会为这个Servlet对象创建一个ServletConfig对象。在ServletConfig对象中包含了Servlet的初始化参数信息,此外,ServletConfig对象还与当前Web应用的ServletContext对象相关联。Servlet容器在调用Servlet对象的init(ServletConfig config)方法时,会把ServletConfig对象作为参数传给Servlet对象,init(ServletConfig config)方法会使得当前Servlet对象与ServletConfig关联。


二、ServletConfig接口中定义的方法:

1)getInitParameter(String name):根据给定的初始化参数名,返回匹配的初始化参数值。
2)getInitParameterNames():返回一个Enumeration对象,里面包含了所有的初始化参数名。
3)getServletContext():返回一个ServletContext对象。

4)getServletName():返回Servlet的名字,即web.xml文件中相应<servlet>元素的<servlet-name>子元素的值。如果没有为Servlet配置<serlvet-name>子元素,则返回Servlet类的名字。



第二部分:ServletContext接口

一、简述

         ServletContext是Servlet与Servlet容器之间直接通信的接口。Servlet容器在自启动一个Web应用时,会为它创建一个ServletContext对象。每个Web应用都有唯一的ServletContext对象,可以把ServletContext对象形象地理解为Web应用的总管家,同一个Web应用中的所有Servlet对象都共享一个总管家,Servlet对象们可通过这个总管家来访问容器中的各种资源。

二、ServletContext接口方法分以下几类:

1、用于在Web应用范围内存取共享数据的方法。

1)setAttribute(String name , Object java.lang.Object object):把一个java对象与一个属性名绑定,并把它存入到ServletContext中。参数name指定属性名,参数object标识共享数据。
2)getAttribute(String name):根据参数给定的属性名,返回一个Object类型的对象,它表示ServletContext中与属性名匹配的属性值。
3)getAttributeNames():返回一个Enumeration对象,该对象包含了所有存放在ServletContext中的属性名。

4)removeAttribute(String name):根据参数指定的属性名,从ServletContext中删除匹配的属性。


2、访问当前Web应用的资源。

1)getContextPath():返回当前Web应用的URL入口。
2)getInitParameter(String name):根据给定的参数名,返回Web应用范围内的匹配的初始化参数值。在web.xml文件中,直接在<web-app>跟元素下定义的<context-param>元素表示应用范围内的初始化参数。
3)getInitParameterNames():返回一个Enumeration对象,它包含了Web应用范围内的所有初始化参数。
4)getServletContextName():返回Web应用的名字,即web.xml文件中<display-name>元素的值。

5)getRequestDispatcher(String path):返回一个用于向其他Web组件转发请求的RequestDispatcher对象。


3、访问Servlet容器中的其他Web应用

1)getContext(String uripath):根据参数指定的URI , 返回当前Servlet容器中其他Web应用的ServletContext对象。


4、访问Servlet容器的相关信息

1)getMajorVersion():返回Servlet容器支持的Java Servlet API的主版本号。
2)getMinorVersion();返回Servlet容器支持的Java Servlet API的次版本号。

3)getServletInfo():返回Servlet容器的名字和版本。


5、访问服务器端的文件系统资源

1)getRealPath(String path):根据参数指定的虚拟路径,返回文件系统中的一个真实路径。
2)getResource(String path):返回一个映射到参数指定的路径的URL。
3)getResourceAsStream(String path):返回一个用于读取参数指定的文件的输入流。

4)getMimeType(String file):返回参数指定的文件的MIME类型。


6、输出日志

1)log(String msg)向Servlet的日志文件中写日志。
2)log(String message , java.lang.Throwable throwable):向Servlet的日志中写错误日志,以及异常的堆栈信息。

        在ServletConfig接口中定义了getServletConfig()方法。
HttpServlet类继承GenericServlet类,而GenericServlet类实现了ServletConfig接口,因此,在HttpServlet类或GenericServlet类及其子类中都可以直接调用getServletConfig()方法,从而得到当前Web应用的ServletContext对象。


0 0
原创粉丝点击